{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.qQqKezXn/b1/dune-geometry_2.10.0-1_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.qQqKezXn/b2/dune-geometry_2.10.0-1_armhf.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n 42f73487d46a70fc4c3da6bc9ad8667f 378364 debug optional libdune-geometry-dev-dbgsym_2.10.0-1_armhf.deb\n 3d03d2f0c7d9a8af8860bee00473d065 279712 libdevel optional libdune-geometry-dev_2.10.0-1_armhf.deb\n- fc6cb11a5ca7b4b26d56c0d73f40950b 1569900 doc optional libdune-geometry-doc_2.10.0-1_all.deb\n+ b03a0286fc0d2dc43852b79fa21c2709 1570264 doc optional libdune-geometry-doc_2.10.0-1_all.deb\n"}, {"source1": "libdune-geometry-doc_2.10.0-1_all.deb", "source2": "libdune-geometry-doc_2.10.0-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-11-14 18:01:13.000000 debian-binary\n--rw-r--r-- 0 0 0 16548 2024-11-14 18:01:13.000000 control.tar.xz\n--rw-r--r-- 0 0 0 1553160 2024-11-14 18:01:13.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 16516 2024-11-14 18:01:13.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 1553556 2024-11-14 18:01:13.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}, {"source1": "line order", "source2": "line order", "unified_diff": "@@ -8,29 +8,28 @@\n usr/share/doc/libdune-geometry-doc/appl/refelements/gg_quadrilateral.png\n usr/share/doc/libdune-geometry-doc/appl/refelements/gg_tetrahedron.png\n usr/share/doc/libdune-geometry-doc/appl/refelements/gg_tetrahedron_edges.png\n usr/share/doc/libdune-geometry-doc/appl/refelements/gg_triangle.png\n usr/share/doc/libdune-geometry-doc/changelog.Debian.gz\n usr/share/doc/libdune-geometry-doc/changelog.gz\n usr/share/doc/libdune-geometry-doc/copyright\n-usr/share/doc/libdune-geometry-doc/doxygen/a00041.html\n+usr/share/doc/libdune-geometry-doc/doxygen/a00080.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00164.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00167.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00170.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00170_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00173.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00173_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00176.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00176_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00179.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00179_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00182.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00182_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00185.html\n-usr/share/doc/libdune-geometry-doc/doxygen/a00185_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00188.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00188_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00191.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00191_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00194.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00194_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00197.html\n@@ -64,14 +63,15 @@\n usr/share/doc/libdune-geometry-doc/doxygen/a00239.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00239_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00242.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00242_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00245.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00245_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00248.html\n+usr/share/doc/libdune-geometry-doc/doxygen/a00248_source.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00252.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00252.png\n usr/share/doc/libdune-geometry-doc/doxygen/a00253.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00253.png\n usr/share/doc/libdune-geometry-doc/doxygen/a00254.html\n usr/share/doc/libdune-geometry-doc/doxygen/a00254.png\n usr/share/doc/libdune-geometry-doc/doxygen/a00255.html\n"}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -16,70 +16,70 @@\n -rw-r--r-- 0 root (0) root (0) 29836 2024-09-05 07:06:07.000000 ./usr/share/doc/libdune-geometry-doc/appl/refelements/gg_tetrahedron.png\n -rw-r--r-- 0 root (0) root (0) 22586 2024-09-05 07:06:07.000000 ./usr/share/doc/libdune-geometry-doc/appl/refelements/gg_tetrahedron_edges.png\n -rw-r--r-- 0 root (0) root (0) 6480 2024-09-05 07:06:07.000000 ./usr/share/doc/libdune-geometry-doc/appl/refelements/gg_triangle.png\n -rw-r--r-- 0 root (0) root (0) 973 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 3700 2024-09-05 07:06:07.000000 ./usr/share/doc/libdune-geometry-doc/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 2567 2023-01-12 15:07:27.000000 ./usr/share/doc/libdune-geometry-doc/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/\n--rw-r--r-- 0 root (0) root (0) 3074 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00041.html\n+-rw-r--r-- 0 root (0) root (0) 3074 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00080.html\n -rw-r--r-- 0 root (0) root (0) 3048 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00164.html\n -rw-r--r-- 0 root (0) root (0) 3046 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00167.html\n--rw-r--r-- 0 root (0) root (0) 5566 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00170.html\n--rw-r--r-- 0 root (0) root (0) 120510 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00170_source.html\n--rw-r--r-- 0 root (0) root (0) 6695 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00173.html\n--rw-r--r-- 0 root (0) root (0) 83430 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00173_source.html\n+-rw-r--r-- 0 root (0) root (0) 7472 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00170.html\n+-rw-r--r-- 0 root (0) root (0) 64525 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00170_source.html\n+-rw-r--r-- 0 root (0) root (0) 9462 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00173.html\n+-rw-r--r-- 0 root (0) root (0) 85721 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00173_source.html\n -rw-r--r-- 0 root (0) root (0) 4509 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00176.html\n -rw-r--r-- 0 root (0) root (0) 8118 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00176_source.html\n--rw-r--r-- 0 root (0) root (0) 6689 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00179.html\n--rw-r--r-- 0 root (0) root (0) 35005 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00179_source.html\n+-rw-r--r-- 0 root (0) root (0) 5861 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00179.html\n+-rw-r--r-- 0 root (0) root (0) 36533 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00179_source.html\n -rw-r--r-- 0 root (0) root (0) 10072 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00182.html\n -rw-r--r-- 0 root (0) root (0) 51406 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00182_source.html\n--rw-r--r-- 0 root (0) root (0) 5591 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00185.html\n--rw-r--r-- 0 root (0) root (0) 45001 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00185_source.html\n--rw-r--r-- 0 root (0) root (0) 5298 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00188.html\n--rw-r--r-- 0 root (0) root (0) 112794 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00188_source.html\n--rw-r--r-- 0 root (0) root (0) 5393 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00191.html\n--rw-r--r-- 0 root (0) root (0) 68218 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00191_source.html\n--rw-r--r-- 0 root (0) root (0) 9691 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00194.html\n--rw-r--r-- 0 root (0) root (0) 96970 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00194_source.html\n--rw-r--r-- 0 root (0) root (0) 10327 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00197.html\n--rw-r--r-- 0 root (0) root (0) 99412 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00197_source.html\n--rw-r--r-- 0 root (0) root (0) 12980 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00200.html\n--rw-r--r-- 0 root (0) root (0) 110071 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00200_source.html\n--rw-r--r-- 0 root (0) root (0) 10292 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00203.html\n--rw-r--r-- 0 root (0) root (0) 99117 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00203_source.html\n--rw-r--r-- 0 root (0) root (0) 10617 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00206.html\n--rw-r--r-- 0 root (0) root (0) 34668 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00206_source.html\n--rw-r--r-- 0 root (0) root (0) 10133 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00209.html\n--rw-r--r-- 0 root (0) root (0) 86387 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00209_source.html\n--rw-r--r-- 0 root (0) root (0) 14826 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00212.html\n--rw-r--r-- 0 root (0) root (0) 96037 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00212_source.html\n--rw-r--r-- 0 root (0) root (0) 4602 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00215.html\n--rw-r--r-- 0 root (0) root (0) 18310 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00215_source.html\n--rw-r--r-- 0 root (0) root (0) 4113 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00218.html\n--rw-r--r-- 0 root (0) root (0) 7061 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00218_source.html\n--rw-r--r-- 0 root (0) root (0) 5104 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00221.html\n--rw-r--r-- 0 root (0) root (0) 12686 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00221_source.html\n+-rw-r--r-- 0 root (0) root (0) 4306 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00185.html\n+-rw-r--r-- 0 root (0) root (0) 14826 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00188.html\n+-rw-r--r-- 0 root (0) root (0) 96037 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00188_source.html\n+-rw-r--r-- 0 root (0) root (0) 5566 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00191.html\n+-rw-r--r-- 0 root (0) root (0) 120510 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00191_source.html\n+-rw-r--r-- 0 root (0) root (0) 5393 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00194.html\n+-rw-r--r-- 0 root (0) root (0) 68218 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00194_source.html\n+-rw-r--r-- 0 root (0) root (0) 4113 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00197.html\n+-rw-r--r-- 0 root (0) root (0) 7061 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00197_source.html\n+-rw-r--r-- 0 root (0) root (0) 5104 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00200.html\n+-rw-r--r-- 0 root (0) root (0) 12686 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00200_source.html\n+-rw-r--r-- 0 root (0) root (0) 4602 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00203.html\n+-rw-r--r-- 0 root (0) root (0) 18310 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00203_source.html\n+-rw-r--r-- 0 root (0) root (0) 5591 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00206.html\n+-rw-r--r-- 0 root (0) root (0) 45001 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00206_source.html\n+-rw-r--r-- 0 root (0) root (0) 5095 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00209.html\n+-rw-r--r-- 0 root (0) root (0) 9366 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00209_source.html\n+-rw-r--r-- 0 root (0) root (0) 6689 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00212.html\n+-rw-r--r-- 0 root (0) root (0) 35005 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00212_source.html\n+-rw-r--r-- 0 root (0) root (0) 5298 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00215.html\n+-rw-r--r-- 0 root (0) root (0) 112794 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00215_source.html\n+-rw-r--r-- 0 root (0) root (0) 7239 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00218.html\n+-rw-r--r-- 0 root (0) root (0) 29450 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00218_source.html\n+-rw-r--r-- 0 root (0) root (0) 5670 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00221.html\n+-rw-r--r-- 0 root (0) root (0) 29348 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00221_source.html\n -rw-r--r-- 0 root (0) root (0) 7985 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00224.html\n -rw-r--r-- 0 root (0) root (0) 171804 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00224_source.html\n--rw-r--r-- 0 root (0) root (0) 5670 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00227.html\n--rw-r--r-- 0 root (0) root (0) 29348 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00227_source.html\n--rw-r--r-- 0 root (0) root (0) 5095 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00230.html\n--rw-r--r-- 0 root (0) root (0) 9366 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00230_source.html\n--rw-r--r-- 0 root (0) root (0) 7472 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00233.html\n--rw-r--r-- 0 root (0) root (0) 64525 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00233_source.html\n--rw-r--r-- 0 root (0) root (0) 7239 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00236.html\n--rw-r--r-- 0 root (0) root (0) 29450 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00236_source.html\n--rw-r--r-- 0 root (0) root (0) 11782 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00239.html\n--rw-r--r-- 0 root (0) root (0) 156304 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00239_source.html\n--rw-r--r-- 0 root (0) root (0) 5861 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00242.html\n--rw-r--r-- 0 root (0) root (0) 36533 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00242_source.html\n--rw-r--r-- 0 root (0) root (0) 9462 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00245.html\n--rw-r--r-- 0 root (0) root (0) 85721 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00245_source.html\n--rw-r--r-- 0 root (0) root (0) 4306 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00248.html\n+-rw-r--r-- 0 root (0) root (0) 6695 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00227.html\n+-rw-r--r-- 0 root (0) root (0) 83430 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00227_source.html\n+-rw-r--r-- 0 root (0) root (0) 11782 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00230.html\n+-rw-r--r-- 0 root (0) root (0) 156304 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00230_source.html\n+-rw-r--r-- 0 root (0) root (0) 12980 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00233.html\n+-rw-r--r-- 0 root (0) root (0) 110071 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00233_source.html\n+-rw-r--r-- 0 root (0) root (0) 10617 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00236.html\n+-rw-r--r-- 0 root (0) root (0) 34668 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00236_source.html\n+-rw-r--r-- 0 root (0) root (0) 10327 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00239.html\n+-rw-r--r-- 0 root (0) root (0) 99412 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00239_source.html\n+-rw-r--r-- 0 root (0) root (0) 10133 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00242.html\n+-rw-r--r-- 0 root (0) root (0) 86387 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00242_source.html\n+-rw-r--r-- 0 root (0) root (0) 10292 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00245.html\n+-rw-r--r-- 0 root (0) root (0) 99117 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00245_source.html\n+-rw-r--r-- 0 root (0) root (0) 9691 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00248.html\n+-rw-r--r-- 0 root (0) root (0) 96970 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00248_source.html\n -rw-r--r-- 0 root (0) root (0) 5067 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00252.html\n -rw-r--r-- 0 root (0) root (0) 11280 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00252.png\n -rw-r--r-- 0 root (0) root (0) 5015 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00253.html\n -rw-r--r-- 0 root (0) root (0) 3926 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00253.png\n -rw-r--r-- 0 root (0) root (0) 57623 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00254.html\n -rw-r--r-- 0 root (0) root (0) 3734 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00254.png\n -rw-r--r-- 0 root (0) root (0) 3474 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/a00255.html\n@@ -319,15 +319,15 @@\n -rw-r--r-- 0 root (0) root (0) 3162 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_8c28f2953344a167049ba6db5a27148a_dep.png\n -rw-r--r-- 0 root (0) root (0) 7098 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_b609f53bbb5e26b8e9292001c59476a3.html\n -rw-r--r-- 0 root (0) root (0) 2492 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_b609f53bbb5e26b8e9292001c59476a3_dep.png\n -rw-r--r-- 0 root (0) root (0) 4025 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_de8ef2d1b4283b99fcb86ec9d2fa66db.html\n -rw-r--r-- 0 root (0) root (0) 1994 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_de8ef2d1b4283b99fcb86ec9d2fa66db_dep.png\n -rw-r--r-- 0 root (0) root (0) 3988 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dir_e68e8157741866f444e17edd764ebbae.html\n -rw-r--r-- 0 root (0) root (0) 45631 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/doxygen.css\n--rw-r--r-- 0 root (0) root (0) 29041 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dune-geometry.tag.gz\n+-rw-r--r-- 0 root (0) root (0) 29037 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dune-geometry.tag.gz\n -rw-r--r-- 0 root (0) root (0) 7704 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/dynsections.js\n -rw-r--r-- 0 root (0) root (0) 14807 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/files.html\n -rw-r--r-- 0 root (0) root (0) 836 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/form_0.png\n -rw-r--r-- 0 root (0) root (0) 929 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/form_0_dark.png\n -rw-r--r-- 0 root (0) root (0) 2566 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/form_1.png\n -rw-r--r-- 0 root (0) root (0) 1385 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/form_10.png\n -rw-r--r-- 0 root (0) root (0) 354 2024-11-14 18:01:13.000000 ./usr/share/doc/libdune-geometry-doc/doxygen/form_100.png\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00170.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00170.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: affinegeometry.hh File Reference</title>\n+<title>dune-geometry: mappedgeometry.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -71,44 +71,59 @@\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">affinegeometry.hh File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">mappedgeometry.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>An implementation of the Geometry interface for affine geometries. \n-<a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <cmath></code><br />\n+<div class=\"textblock\"><code>#include <cassert></code><br />\n+<code>#include <limits></code><br />\n+<code>#include <optional></code><br />\n+<code>#include <stdexcept></code><br />\n+<code>#include <type_traits></code><br />\n+<code>#include <dune/common/copyableoptional.hh></code><br />\n+<code>#include <dune/common/exceptions.hh></code><br />\n <code>#include <dune/common/fmatrix.hh></code><br />\n <code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <dune/common/math.hh></code><br />\n+<code>#include <dune/common/transpose.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00203_source.html\">dune/geometry/utility/algorithms.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00197_source.html\">dune/geometry/utility/convergence.hh</a>></code><br />\n </div>\n <p><a href=\"a00170_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01107.html\">Dune::AffineGeometry< ct, mydim, cdim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the Geometry interface for affine geometries. <a href=\"a01107.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01135.html\">Dune::MappedGeometry< Map, Geo ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Geometry parametrized by a LocalFunction and a LocalGeometry. <a href=\"a01135.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n+Functions</h2></td></tr>\n+<tr class=\"memitem:ae7d03a34d359df9cee5b2c4e8bb6c4df\" id=\"r_ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memTemplParams\" colspan=\"2\">template<class Map , class Geo > </td></tr>\n+<tr class=\"memitem:ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#ae7d03a34d359df9cee5b2c4e8bb6c4df\">Dune::MappedGeometry</a> (const Map &, const Geo &) -> <a class=\"el\" href=\"a01135.html\">MappedGeometry</a>< Map, Geo ></td></tr>\n+<tr class=\"separator:ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a2b469172d0793dfae5154d94ef27e646\" id=\"r_a2b469172d0793dfae5154d94ef27e646\"><td class=\"memTemplParams\" colspan=\"2\">template<class Map , class Geo > </td></tr>\n+<tr class=\"memitem:a2b469172d0793dfae5154d94ef27e646\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a2b469172d0793dfae5154d94ef27e646\">Dune::MappedGeometry</a> (const Map &, const Geo &, bool) -> <a class=\"el\" href=\"a01135.html\">MappedGeometry</a>< Map, Geo ></td></tr>\n+<tr class=\"separator:a2b469172d0793dfae5154d94ef27e646\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>An implementation of the Geometry interface for affine geometries. </p>\n-<dl class=\"section author\"><dt>Author</dt><dd>Martin Nolte </dd></dl>\n-</div></div><!-- contents -->\n+</div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,29 +1,43 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-affinegeometry.hh File Reference\n-An implementation of the Geometry interface for affine geometries. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <cmath>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+mappedgeometry.hh File Reference\n+#include <cassert>\n+#include <limits>\n+#include <optional>\n+#include <stdexcept>\n+#include <type_traits>\n+#include <dune/common/copyableoptional.hh>\n+#include <dune/common/exceptions.hh>\n #include <dune/common/fmatrix.hh>\n #include <dune/common/fvector.hh>\n+#include <dune/common/math.hh>\n+#include <dune/common/transpose.hh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bc_\bt_\b,_\b _\bm_\by_\bd_\bi_\bm_\b,_\b _\bc_\bd_\bi_\bm_\b _\b>\n-\u00a0 Implementation of the Geometry interface for affine geometries. _\bM_\bo_\br_\be_\b._\b._\b.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bM_\ba_\bp_\b,_\b _\bG_\be_\bo_\b _\b>\n+\u00a0 Geometry parametrized by a LocalFunction and a LocalGeometry. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template<class Map , class Geo >\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map &, const Geo &) -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by< Map, Geo >\n+\u00a0\n+template<class Map , class Geo >\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map &, const Geo &, bool) -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by< Map,\n+ Geo >\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-An implementation of the Geometry interface for affine geometries.\n- Author\n- Martin Nolte\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00170_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00170_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: affinegeometry.hh Source File</title>\n+<title>dune-geometry: mappedgeometry.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,705 +74,326 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">affinegeometry.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">mappedgeometry.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00170.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <cmath></span></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00020\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html\"> 20</a></span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span>{</div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> <span class=\"comment\">// External Forward Declarations</span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> <span class=\"comment\">// -----------------------------</span></div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00264.html\"> 26</a></span> <span class=\"keyword\">namespace </span>Geo</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <limits></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <optional></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <stdexcept></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/copyableoptional.hh></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/transpose.hh></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00188.html\">dune/geometry/quadraturerules.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00203.html\">dune/geometry/utility/algorithms.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00197.html\">dune/geometry/utility/convergence.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> </div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n <div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">typename</span> Implementation ></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>;</div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01095.html\"> 33</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01095.html\">ReferenceElementImplementation</a>;</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>;</div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> </div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> </div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">namespace </span>Impl</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> </div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">// FieldMatrixHelper</span></div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">// -----------------</span></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> </div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct ></div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keyword\">struct </span>FieldMatrixHelper</div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> {</div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"keyword\">typedef</span> ct ctype;</div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> Ax ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, m > &ret )</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> {</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> {</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> ret[ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < n; ++j )</div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> ret[ i ] += A[ i ][ j ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> }</div>\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> }</div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> </div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, m > &x, FieldVector< ctype, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> {</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> ret[ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < m; ++j )</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> ret[ i ] += A[ j ][ i ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> }</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> }</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n, <span class=\"keywordtype\">int</span> p ></div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AB ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldMatrix< ctype, n, p > &B, FieldMatrix< ctype, m, p > &ret )</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> {</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> {</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < p; ++j )</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> {</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> ret[ i ][ j ] += A[ i ][ k ] * B[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> }</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> }</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n+<div class=\"foldopen\" id=\"foldopen00064\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html\"> 64</a></span><span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a></div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span>{</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span><span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\"> 68</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> = <span class=\"keyword\">typename</span> Geo::LocalCoordinate;</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\"> 71</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> = std::remove_reference_t<decltype(std::declval<Map>()(std::declval<typename Geo::GlobalCoordinate>()))>;</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\"> 74</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">ctype</a> = <span class=\"keyword\">typename</span> Geo::ctype;</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\"> 77</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">mydimension</a> = LocalCoordinate::size();</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\"> 80</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\">coorddimension</a> = GlobalCoordinate::size();</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\"> 83</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> = std::remove_reference_t<decltype(Dune::power(std::declval<ctype>(),<a class=\"code hl_variable\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">mydimension</a>))>;</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\"> 86</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Jacobian</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n <div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n, <span class=\"keywordtype\">int</span> p ></div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATBT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldMatrix< ctype, p, m > &B, FieldMatrix< ctype, n, p > &ret )</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> {</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < p; ++j )</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> {</div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> ret[ i ][ j ] += A[ k ][ i ] * B[ j ][ k ];</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> }</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> }</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> }</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> </div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATA_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> {</div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> {</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> {</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> }</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> }</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> </div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> {</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> {</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> }</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> ret[ i ][ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> ret[ i ][ i ] += A[ k ][ i ] * A[ k ][ i ];</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> }</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AAT_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, m, m > &ret )</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {</div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"comment\">/*</span></div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span><span class=\"comment\"> if (m==2) {</span></div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span><span class=\"comment\"> ret[0][0] = A[0]*A[0];</span></div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span><span class=\"comment\"> ret[1][1] = A[1]*A[1];</span></div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span><span class=\"comment\"> ret[1][0] = A[0]*A[1];</span></div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span><span class=\"comment\"> }</span></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><span class=\"comment\"> else</span></div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span><span class=\"comment\"> */</span></div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> {</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> ctype &retij = ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> retij = A[ i ][ 0 ] * A[ j ][ 0 ];</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 1; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> retij += A[ i ][ k ] * A[ j ][ k ];</div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> }</div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> }</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> }</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> </div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AAT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, m, m > &ret )</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> {</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> {</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> {</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> ret[ i ][ j ] += A[ i ][ k ] * A[ j ][ k ];</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> }</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> ret[ i ][ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> ret[ i ][ i ] += A[ i ][ k ] * A[ i ][ k ];</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> }</div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> }</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> </div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> Lx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> {</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> {</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> ret[ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> ret[ i ] += L[ i ][ j ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> }</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> }</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> </div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LTx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> {</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> {</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> ret[ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = i; j < n; ++j )</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> ret[ i ] += L[ j ][ i ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> }</div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LTL ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype, n, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> {</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> {</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> ret[ i ][ j ] += L[ k ][ i ] * L[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> }</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> ret[ i ][ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> ret[ i ][ i ] += L[ k ][ i ] * L[ k ][ i ];</div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> }</div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> </div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LLT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype, n, n > &ret )</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> {</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> {</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> {</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> ret[ i ][ j ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k <= j; ++k )</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> ret[ i ][ j ] += L[ i ][ k ] * L[ j ][ k ];</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> }</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> ret[ i ][ i ] = ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k <= i; ++k )</div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> ret[ i ][ i ] += L[ i ][ k ] * L[ i ][ k ];</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> }</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> }</div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> cholesky_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &A, FieldMatrix< ctype, n, n > &ret, <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> checkSingular = <span class=\"keyword\">false</span> )</div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> {</div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> {</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> ctype &rii = ret[ i ][ i ];</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> </div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> ctype xDiag = A[ i ][ i ];</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> xDiag -= ret[ i ][ j ] * ret[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> </div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"comment\">// in some cases A can be singular, e.g. when checking local for</span></div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"comment\">// outside points during checkInside</span></div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">if</span>( checkSingular && ! ( xDiag > ctype( 0 )) )</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordflow\">return</span> false ;</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"comment\">// otherwise this should be true always</span></div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> assert( xDiag > ctype( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> rii = sqrt( xDiag );</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> ctype invrii = ctype( 1 ) / rii;</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i+1; k < n; ++k )</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> {</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> ctype x = A[ k ][ i ];</div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> x -= ret[ i ][ j ] * ret[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> ret[ k ][ i ] = invrii * x;</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> }</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> }</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"comment\">// return true for meaning A is non-singular</span></div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> }</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> </div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> <span class=\"keyword\">static</span> ctype detL ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L )</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> {</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> ctype det( 1 );</div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> det *= L[ i ][ i ];</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <span class=\"keywordflow\">return</span> det;</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> }</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> </div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">static</span> ctype invL ( FieldMatrix< ctype, n, n > &L )</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> {</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> ctype det( 1 );</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> {</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> ctype &lii = L[ i ][ i ];</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> det *= lii;</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> lii = ctype( 1 ) / lii;</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> {</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> ctype &lij = L[ i ][ j ];</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> ctype x = lij * L[ j ][ j ];</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = j+1; k < i; ++k )</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> x += L[ i ][ k ] * L[ k ][ j ];</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> lij = (-lii) * x;</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> }</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> }</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keywordflow\">return</span> det;</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> }</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> </div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"comment\">// calculates x := L^{-1} x</span></div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> invLx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n > &x )</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> {</div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> {</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> x[ i ] -= L[ i ][ j ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> x[ i ] /= L[ i ][ i ];</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> }</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> </div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"comment\">// calculates x := L^{-T} x</span></div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> invLTx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n > &x )</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> {</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = n; i > 0; --i )</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> {</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = i; j < n; ++j )</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> x[ i-1 ] -= L[ j ][ i-1 ] * x[ j ];</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> x[ i-1 ] /= L[ i-1 ][ i-1 ];</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> }</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> }</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> </div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keyword\">static</span> ctype spdDetA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &A )</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> {</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"comment\">// return A[0][0]*A[1][1]-A[1][0]*A[1][0];</span></div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> FieldMatrix< ctype, n, n > L;</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> cholesky_L( A, L );</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> detL( L );</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> <span class=\"keyword\">static</span> ctype spdInvA ( FieldMatrix< ctype, n, n > &A )</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> {</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> FieldMatrix< ctype, n, n > L;</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> cholesky_L( A, L );</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> <span class=\"keyword\">const</span> ctype det = invL( L );</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> LTL( L, A );</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keywordflow\">return</span> det;</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> }</div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> </div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"comment\">// calculate x := A^{-1} x</span></div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> spdInvAx ( FieldMatrix< ctype, n, n > &A, FieldVector< ctype, n > &x, <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> checkSingular = <span class=\"keyword\">false</span> )</div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> {</div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> FieldMatrix< ctype, n, n > L;</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> invertible = cholesky_L( A, L, checkSingular );</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">if</span>( ! invertible ) <span class=\"keywordflow\">return</span> invertible ;</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> invLx( L, x );</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> invLTx( L, x );</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">return</span> invertible;</div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> }</div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keyword\">static</span> ctype detATA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A )</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> {</div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <span class=\"keywordflow\">if</span>( m >= n )</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> {</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> FieldMatrix< ctype, n, n > ata;</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> ATA_L( A, ata );</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> spdDetA( ata );</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keywordflow\">return</span> ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> }</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> </div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> ctype sqrtDetAAT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A )</div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> {</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">using </span>std::abs;</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"comment\">// These special cases are here not only for speed reasons:</span></div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"comment\">// The general implementation aborts if the matrix is almost singular,</span></div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"comment\">// and the special implementation provide a stable way to handle that case.</span></div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordflow\">if</span>( (n == 2) && (m == 2) )</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> {</div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"comment\">// Special implementation for 2x2 matrices: faster and more stable</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keywordflow\">return</span> abs( A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ] );</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> }</div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( (n == 3) && (m == 3) )</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> {</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// Special implementation for 3x3 matrices</span></div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">const</span> ctype v0 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 1 ][ 1 ] * A[ 0 ][ 2 ];</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keyword\">const</span> ctype v1 = A[ 0 ][ 2 ] * A[ 1 ][ 0 ] - A[ 1 ][ 2 ] * A[ 0 ][ 0 ];</div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keyword\">const</span> ctype v2 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 1 ][ 0 ] * A[ 0 ][ 1 ];</div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keywordflow\">return</span> abs( v0 * A[ 2 ][ 0 ] + v1 * A[ 2 ][ 1 ] + v2 * A[ 2 ][ 2 ] );</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> }</div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> ( (n == 3) && (m == 2) )</div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> {</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"comment\">// Special implementation for 2x3 matrices</span></div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">const</span> ctype v0 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 0 ][ 1 ] * A[ 1 ][ 0 ];</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> <span class=\"keyword\">const</span> ctype v1 = A[ 0 ][ 0 ] * A[ 1 ][ 2 ] - A[ 1 ][ 0 ] * A[ 0 ][ 2 ];</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">const</span> ctype v2 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 0 ][ 2 ] * A[ 1 ][ 1 ];</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keywordflow\">return</span> sqrt( v0*v0 + v1*v1 + v2*v2);</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> }</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( n >= m )</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> {</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> <span class=\"comment\">// General case</span></div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> FieldMatrix< ctype, m, m > aat;</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> AAT_L( A, aat );</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keywordflow\">return</span> spdDetA( aat );</div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> }</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> <span class=\"keywordflow\">return</span> ctype( 0 );</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> }</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"comment\">// A^{-1}_L = (A^T A)^{-1} A^T</span></div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"comment\">// => A^{-1}_L A = I</span></div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">static</span> ctype leftInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, m > &ret )</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> {</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keyword\">static_assert</span>((m >= n), <span class=\"stringliteral\">"Matrix has no left inverse."</span>);</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> <span class=\"keyword\">using </span>std::abs;</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>( (n == 2) && (m == 2) )</div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> {</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keyword\">const</span> ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);</div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keyword\">const</span> ctype detInv = ctype( 1 ) / det;</div>\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">return</span> abs( det );</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> }</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> {</div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> FieldMatrix< ctype, n, n > ata;</div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> ATA_L( A, ata );</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> <span class=\"keyword\">const</span> ctype det = spdInvA( ata );</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> ATBT( ata, A, ret );</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> <span class=\"keywordflow\">return</span> det;</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> }</div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> }</div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> </div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> leftInvAx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, m > &x, FieldVector< ctype, n > &y )</div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> {</div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keyword\">static_assert</span>((m >= n), <span class=\"stringliteral\">"Matrix has no left inverse."</span>);</div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> FieldMatrix< ctype, n, n > ata;</div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> ATx( A, x, y );</div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> ATA_L( A, ata );</div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> spdInvAx( ata, y, <span class=\"keyword\">true</span> );</div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> }</div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keyword\">static</span> ctype rightInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, m > &ret )</div>\n-<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> {</div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keyword\">static_assert</span>((n >= m), <span class=\"stringliteral\">"Matrix has no right inverse."</span>);</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> <span class=\"keyword\">using </span>std::abs;</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>( (n == 2) && (m == 2) )</div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> {</div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> <span class=\"keyword\">const</span> ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);</div>\n-<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> <span class=\"keyword\">const</span> ctype detInv = ctype( 1 ) / det;</div>\n-<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;</div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <span class=\"keywordflow\">return</span> abs( det );</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> }</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> {</div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> FieldMatrix< ctype, m , m > aat;</div>\n-<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> AAT_L( A, aat );</div>\n-<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> <span class=\"keyword\">const</span> ctype det = spdInvA( aat );</div>\n-<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> ATBT( A , aat , ret );</div>\n-<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keywordflow\">return</span> det;</div>\n-<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> }</div>\n-<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> }</div>\n-<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> </div>\n-<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n-<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> xTRightInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, m > &y )</div>\n-<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> {</div>\n-<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> <span class=\"keyword\">static_assert</span>((n >= m), <span class=\"stringliteral\">"Matrix has no right inverse."</span>);</div>\n-<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> FieldMatrix< ctype, m, m > aat;</div>\n-<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> Ax( A, x, y );</div>\n-<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> AAT_L( A, aat );</div>\n-<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> <span class=\"comment\">// check whether aat is singular and return true if non-singular</span></div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keywordflow\">return</span> spdInvAx( aat, y, <span class=\"keyword\">true</span> );</div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> }</div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> };</div>\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> </div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> } <span class=\"comment\">// namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> </div>\n-<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> </div>\n-<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> </div>\n-<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> mydim, <span class=\"keywordtype\">int</span> cdim></div>\n-<div class=\"foldopen\" id=\"foldopen00497\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html\"> 497</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a></div>\n-<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> {</div>\n-<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> </div>\n-<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\"> 502</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a>;</div>\n-<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span> </div>\n-<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\"> 505</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a>= mydim;</div>\n-<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> </div>\n-<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\"> 508</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\">coorddimension</a> = cdim;</div>\n-<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> </div>\n-<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\"> 511</a></span> <span class=\"keyword\">typedef</span> FieldVector< ctype, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a>;</div>\n-<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> </div>\n-<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\"> 514</a></span> <span class=\"keyword\">typedef</span> FieldVector< ctype, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a>;</div>\n-<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> </div>\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a542de56631f87d4e016369badf355329\"> 517</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> <a class=\"code hl_typedef\" href=\"a01107.html#a542de56631f87d4e016369badf355329\">Volume</a>;</div>\n-<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> </div>\n-<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\"> 520</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, mydimension, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a>;</div>\n-<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> </div>\n-<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\"> 523</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, coorddimension, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a>;</div>\n-<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> </div>\n-<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\"> 526</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, coorddimension, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Jacobian</a>;</div>\n-<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> </div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\"> 529</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, mydimension, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">JacobianInverse</a>;</div>\n-<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> </div>\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement< Geo::ReferenceElementImplementation< ctype, mydimension ></a> > <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>;</div>\n-<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> </div>\n-<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01099.html\">Geo::ReferenceElements< ctype, mydimension ></a> <a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>;</div>\n-<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> </div>\n-<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">// Helper class to compute a matrix pseudo inverse</span></div>\n-<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keyword\">typedef</span> Impl::FieldMatrixHelper< ct > MatrixHelper;</div>\n-<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> </div>\n-<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\"> 547</a></span> <a class=\"code hl_function\" href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\">AffineGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n-<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00550\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\"> 550</a></span> <a class=\"code hl_function\" href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\">AffineGeometry</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> &refElement, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &origin,</div>\n-<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &jt )</div>\n-<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> : refElement_(refElement), origin_(origin), jacobianTransposed_(jt)</div>\n-<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> {</div>\n-<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );</div>\n-<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00558\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\"> 558</a></span> <a class=\"code hl_function\" href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\">AffineGeometry</a> ( <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &origin,</div>\n-<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &jt )</div>\n-<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> : <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general( gt ), origin, jt)</div>\n-<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> { }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> </div>\n-<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> CoordVector ></div>\n-<div class=\"foldopen\" id=\"foldopen00565\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\"> 565</a></span> <a class=\"code hl_function\" href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\">AffineGeometry</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> &refElement, <span class=\"keyword\">const</span> CoordVector &coordVector )</div>\n-<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> : refElement_(refElement), origin_(coordVector[0])</div>\n-<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> {</div>\n-<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a>; ++i )</div>\n-<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;</div>\n-<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );</div>\n-<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> </div>\n-<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> CoordVector ></div>\n-<div class=\"foldopen\" id=\"foldopen00575\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\"> 575</a></span> <a class=\"code hl_function\" href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\">AffineGeometry</a> ( <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> gt, <span class=\"keyword\">const</span> CoordVector &coordVector )</div>\n-<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> : <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general( gt ), coordVector)</div>\n-<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> { }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> </div>\n-<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\"> 580</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\">affine</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>; }</div>\n-<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> </div>\n-<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\"> 583</a></span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> <a class=\"code hl_function\" href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\">type</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> refElement_.<a class=\"code hl_function\" href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">type</a>(); }</div>\n-<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> </div>\n-<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\"> 586</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\">corners</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> refElement_.<a class=\"code hl_function\" href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">size</a>( <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a> ); }</div>\n-<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00589\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\"> 589</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\">corner</a> ( <span class=\"keywordtype\">int</span> i )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( refElement_.<a class=\"code hl_function\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">position</a>( i, <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a> ) );</div>\n-<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> </div>\n-<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\"> 595</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\">center</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( refElement_.<a class=\"code hl_function\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">position</a>( 0, 0 ) ); }</div>\n-<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00603\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\"> 603</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( origin_ );</div>\n-<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> jacobianTransposed_.umtv( <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>, <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> );</div>\n-<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>;</div>\n-<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00623\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\"> 623</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>;</div>\n-<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> jacobianInverseTransposed_.mtv( <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> - origin_, <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> );</div>\n-<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>;</div>\n-<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00640\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\"> 640</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> <a class=\"code hl_function\" href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\">integrationElement</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"keywordflow\">return</span> integrationElement_;</div>\n-<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00646\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\"> 646</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a542de56631f87d4e016369badf355329\">Volume</a> <a class=\"code hl_function\" href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\">volume</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">return</span> integrationElement_ * refElement_.<a class=\"code hl_function\" href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">volume</a>();</div>\n-<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00657\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\"> 657</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &<a class=\"code hl_function\" href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\">jacobianTransposed</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> <span class=\"keywordflow\">return</span> jacobianTransposed_;</div>\n-<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00668\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\"> 668</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a> &<a class=\"code hl_function\" href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\">jacobianInverseTransposed</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> <span class=\"keywordflow\">return</span> jacobianInverseTransposed_;</div>\n-<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00679\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\"> 679</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Jacobian</a> <a class=\"code hl_function\" href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\">jacobian</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span> <span class=\"keywordflow\">return</span> jacobianTransposed_.transposed();</div>\n-<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00690\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\"> 690</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\">jacobianInverse</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> <span class=\"keywordflow\">return</span> jacobianInverseTransposed_.transposed();</div>\n-<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00695\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\"> 695</a></span> <span class=\"keyword\">friend</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\">referenceElement</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a> &geometry )</div>\n-<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> {</div>\n-<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> <span class=\"keywordflow\">return</span> geometry.refElement_;</div>\n-<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> </div>\n-<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"> 700</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> <a class=\"code hl_typedef\" href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">ReferenceElement</a> refElement_;</div>\n-<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> origin_;</div>\n-<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> jacobianTransposed_;</div>\n-<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a> jacobianInverseTransposed_;</div>\n-<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"> 705</span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> integrationElement_;</div>\n-<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"> 707</span> </div>\n-<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span>} <span class=\"comment\">// namespace Dune</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n-<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\"> 89</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">JacobianTransposed</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> </div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\"> 92</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> </div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\"> 95</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">JacobianInverseTransposed</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">using </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a> = <a class=\"code hl_struct\" href=\"a01099.html\">Dune::ReferenceElements<ctype, mydimension></a>;</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">using </span>ReferenceElement = <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements::ReferenceElement</a>;</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span><span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\"> 102</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\">MatrixHelper</a> = Impl::FieldMatrixHelper<ctype>;</div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> </div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"comment\">// type of the mapping representation the geometry parametrization</span></div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\"> 105</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Mapping</a> = Map;</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> </div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"comment\">// type of the geometry that is wrapped</span></div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\"> 108</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a> = Geo;</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> </div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// type of a mapping representing the derivative of `Map` w.r.t. `GlobalCoordinate`</span></div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ade44883006b5b261a4261133464672bd\"> 111</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ade44883006b5b261a4261133464672bd\">DerivativeMapping</a> = std::remove_reference_t<decltype(derivative(std::declval<Map>()))>;</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span><span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>Geo_, <span class=\"keyword\">class </span>Map_,</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> std::enable_if_t<Dune::IsInteroperable<Map, Map_>::value, <span class=\"keywordtype\">int</span>> = 0,</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> std::enable_if_t<Dune::IsInteroperable<Geo, Geo_>::value, <span class=\"keywordtype\">int</span>> = 0></div>\n+<div class=\"foldopen\" id=\"foldopen00125\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\"> 125</a></span> <a class=\"code hl_function\" href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\">MappedGeometry</a> (Map_&& mapping, Geo_&& geometry, <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a> = <span class=\"keyword\">false</span>)</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> : mapping_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Map_>(mapping))</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> , dMapping_(derivative(*mapping_))</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> , geometry_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Geo_>(geometry))</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> , affine_(<a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a>)</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00137\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#adc9100c25955043886248662db0039a8\"> 137</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">return</span> affine_;</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00143\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\"> 143</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"keywordflow\">return</span> geometry_.type();</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00149\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\"> 149</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">corners</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> geometry_.corners();</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00155\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\"> 155</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\">corner</a> (<span class=\"keywordtype\">int</span> i)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> assert( (i >= 0) && (i < <a class=\"code hl_function\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">corners</a>()) );</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.corner(i));</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00162\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\"> 162</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\">center</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.center());</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00176\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\"> 176</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.global(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00197\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\"> 197</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a>& y, Impl::GaussNewtonOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> {</div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> x = <a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a>().position(0,0);</div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> Impl::GaussNewtonErrorCode err = Impl::gaussNewton(</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a>(local); },</div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a>(local); },</div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> y, x, opts</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> );</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> </div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">if</span> (err != Impl::GaussNewtonErrorCode::OK)</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> DUNE_THROW(Dune::Exception,</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <span class=\"stringliteral\">"Local coordinate can not be recovered from global coordinate, error code = "</span> << <span class=\"keywordtype\">int</span>(err) << <span class=\"stringliteral\">"\\n"</span></div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> << <span class=\"stringliteral\">" (global(x) - y).two_norm() = "</span> << (<a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a>(x) - y).two_norm()</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> << <span class=\"stringliteral\">" > tol = "</span> << opts.absTol);</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> x;</div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00225\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\"> 225</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">ctype</a> <a class=\"code hl_function\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">integrationElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keywordflow\">return</span> MatrixHelper::sqrtDetAAT(<a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00241\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\"> 241</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a> (Impl::ConvergenceOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol0 = <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a>(), 1));</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a>())</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <span class=\"keywordflow\">return</span> vol0;</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keyword\">using </span>std::abs;</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> p = 2; p < opts.maxIt; ++p) {</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol1 = <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a>(), p));</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keywordflow\">if</span> (abs(vol1 - vol0) < opts.absTol)</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordflow\">return</span> vol1;</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> vol0 = vol1;</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> }</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"keywordflow\">return</span> vol0;</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00259\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\"> 259</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> <a class=\"code hl_function\" href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\">volume</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, mydimension></a>& quadRule)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol(0);</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keywordflow\">for</span> (<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& qp : quadRule)</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> vol += <a class=\"code hl_function\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">integrationElement</a>(qp.position()) * qp.weight();</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> <span class=\"keywordflow\">return</span> vol;</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00272\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\"> 272</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Jacobian</a> <a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">auto</span>&& jLocal = geometry_.jacobian(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>);</div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <span class=\"keyword\">auto</span>&& jMapping = (*dMapping_)(geometry_.global(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> <span class=\"keywordflow\">return</span> jMapping * jLocal;</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00284\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\"> 284</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordflow\">return</span> transpose(<a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00296\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\"> 296</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">jacobianInverse</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> out;</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> MatrixHelper::leftInvA(<a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>), out);</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">return</span> out;</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00310\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\"> 310</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\">jacobianInverseTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordflow\">return</span> transpose(<a class=\"code hl_function\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">jacobianInverse</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00316\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\"> 316</a></span> <span class=\"keyword\">friend</span> ReferenceElement <a class=\"code hl_friend\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">referenceElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a>& geometry)</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> {</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">return</span> geometry.<a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a>();</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> </div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"comment\">// the internal stored reference element</span></div>\n+<div class=\"foldopen\" id=\"foldopen00323\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\"> 323</a></span> ReferenceElement <a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_friend\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">referenceElement</a>(geometry_);</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> </div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"comment\">// internal reference to the stored mapping</span></div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Mapping</a>& mapping ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">return</span> *mapping_;</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> }</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"comment\">// internal reference to the wrapped geometry</span></div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a>& geometry ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> geometry_;</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> CopyableOptional<Mapping> mapping_;</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> CopyableOptional<DerivativeMapping> dMapping_;</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> </div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a> geometry_;</div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keywordtype\">bool</span> affine_;</div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span>};</div>\n+</div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> </div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span><span class=\"comment\">// deduction guides</span></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#ae7d03a34d359df9cee5b2c4e8bb6c4df\"> 357</a></span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a> (<span class=\"keyword\">const</span> Map&, <span class=\"keyword\">const</span> Geo&)</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> -> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry<Map,Geo></a>;</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a2b469172d0793dfae5154d94ef27e646\"> 361</a></span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a> (<span class=\"keyword\">const</span> Map&, <span class=\"keyword\">const</span> Geo&, <span class=\"keywordtype\">bool</span>)</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> -> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry<Map,Geo></a>;</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span>} <span class=\"comment\">// end namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> </div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n+<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00188_html\"><div class=\"ttname\"><a href=\"a00188.html\">quadraturerules.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n+<div class=\"ttc\" id=\"aa00197_html\"><div class=\"ttname\"><a href=\"a00197.html\">convergence.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00203_html\"><div class=\"ttname\"><a href=\"a00203.html\">algorithms.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a1cdbc7bdf778b00fdacba9b2e0efe8ee\"><div class=\"ttname\"><a href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">Dune::ReferenceElement</a></div><div class=\"ttdeci\">decltype(referenceElement(std::declval< T >()...)) ReferenceElement</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:347</div></div>\n-<div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n-<div class=\"ttc\" id=\"aa01091_html_a0afe55b1551e04497fb74a301ace4e77\"><div class=\"ttname\"><a href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">Dune::Geo::ReferenceElement::volume</a></div><div class=\"ttdeci\">CoordinateField volume() const</div><div class=\"ttdoc\">obtain the volume of the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:228</div></div>\n-<div class=\"ttc\" id=\"aa01091_html_a1b7089a178a3be8143e8bdd8fd5a4e95\"><div class=\"ttname\"><a href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">Dune::Geo::ReferenceElement::type</a></div><div class=\"ttdeci\">GeometryType type(int i, int c) const</div><div class=\"ttdoc\">obtain the type of subentity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:167</div></div>\n-<div class=\"ttc\" id=\"aa01091_html_a3ac0e9ef3e02ac3e752e4a0c36e1b709\"><div class=\"ttname\"><a href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">Dune::Geo::ReferenceElement::position</a></div><div class=\"ttdeci\">Coordinate position(int i, int c) const</div><div class=\"ttdoc\">position of the barycenter of entity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:190</div></div>\n-<div class=\"ttc\" id=\"aa01091_html_a5b7bed3b1102a6ea1ce66ab57a477ee8\"><div class=\"ttname\"><a href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">Dune::Geo::ReferenceElement::size</a></div><div class=\"ttdeci\">int size(int c) const</div><div class=\"ttdoc\">number of subentities of codimension c</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:94</div></div>\n-<div class=\"ttc\" id=\"aa01095_html\"><div class=\"ttname\"><a href=\"a01095.html\">Dune::Geo::ReferenceElementImplementation</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:33</div></div>\n <div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01107_html\"><div class=\"ttname\"><a href=\"a01107.html\">Dune::AffineGeometry</a></div><div class=\"ttdoc\">Implementation of the Geometry interface for affine geometries.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:498</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a2379307a10ddb1b40f0eface881517bf\"><div class=\"ttname\"><a href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(const ReferenceElement &refElement, const CoordVector &coordVector)</div><div class=\"ttdoc\">Create affine geometry from reference element and a vector of vertex coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:565</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a300d5536b3780fd43df7e39cc100e9ff\"><div class=\"ttname\"><a href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry()=default</div><div class=\"ttdoc\">Constructs an empty geometry.</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a32c977f3a7c2dd5070e767619b518607\"><div class=\"ttname\"><a href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(Dune::GeometryType gt, const GlobalCoordinate &origin, const JacobianTransposed &jt)</div><div class=\"ttdoc\">Create affine geometry from GeometryType, one vertex, and the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:558</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a3c1b10f3f337e38e6ec273d21110c7cb\"><div class=\"ttname\"><a href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">Dune::AffineGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, mydimension > LocalCoordinate</div><div class=\"ttdoc\">Type for local coordinate vector.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:511</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a4cc327eee3513d2ceab37c9fc4048a8b\"><div class=\"ttname\"><a href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\">Dune::AffineGeometry::type</a></div><div class=\"ttdeci\">Dune::GeometryType type() const</div><div class=\"ttdoc\">Obtain the type of the reference element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:583</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a4eacf4f1784f7b2627cd14dbf8fbe231\"><div class=\"ttname\"><a href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">Dune::AffineGeometry::mydimension</a></div><div class=\"ttdeci\">static const int mydimension</div><div class=\"ttdoc\">Dimension of the geometry.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:505</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a517c28647866fe3fde69bdf24ecc25cd\"><div class=\"ttname\"><a href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(const ReferenceElement &refElement, const GlobalCoordinate &origin, const JacobianTransposed &jt)</div><div class=\"ttdoc\">Create affine geometry from reference element, one vertex, and the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:550</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a542de56631f87d4e016369badf355329\"><div class=\"ttname\"><a href=\"a01107.html#a542de56631f87d4e016369badf355329\">Dune::AffineGeometry::Volume</a></div><div class=\"ttdeci\">ctype Volume</div><div class=\"ttdoc\">Type used for volume.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:517</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a6106ef075be62916c4d9c6d8d0bd78cb\"><div class=\"ttname\"><a href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\">Dune::AffineGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:690</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a75e66e07e40a59fabd7e54932d0f0245\"><div class=\"ttname\"><a href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\">Dune::AffineGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const AffineGeometry &geometry)</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:695</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a75fcaa352bf967d07951047f603a5478\"><div class=\"ttname\"><a href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(Dune::GeometryType gt, const CoordVector &coordVector)</div><div class=\"ttdoc\">Create affine geometry from GeometryType and a vector of vertex coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:575</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a796b87d2b330c8ec652f96a1d2d1e699\"><div class=\"ttname\"><a href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\">Dune::AffineGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:640</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a8028ee26f70a50057c3dd86079966d74\"><div class=\"ttname\"><a href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">Dune::AffineGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">Type for the inverse Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:529</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a81f54b3ba4fa127af7b336e5219a6f1b\"><div class=\"ttname\"><a href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Dune::AffineGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">Type for the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:526</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a829a0230c79cf10d4921c9e76f02152b\"><div class=\"ttname\"><a href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\">Dune::AffineGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">const JacobianInverseTransposed & jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:668</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a871e21712b26315eee177c3e1fd0ea8b\"><div class=\"ttname\"><a href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">Dune::AffineGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">Type for the transposed Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:520</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a98dc47bc662d6756ebc29a15dc950265\"><div class=\"ttname\"><a href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\">Dune::AffineGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:589</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a9ae3daf323aa148d3012e6f874edf5fb\"><div class=\"ttname\"><a href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\">Dune::AffineGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:586</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a9ef871bafa45ff201be09e1233351f7d\"><div class=\"ttname\"><a href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">Dune::AffineGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &global) const</div><div class=\"ttdoc\">Evaluate the inverse mapping.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:623</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_a9fd4659006e684aecaa8c377b786f49d\"><div class=\"ttname\"><a href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">Dune::AffineGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">Type for the transposed inverse Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:523</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_aa916060fcce63de6b9ebc9ef8e119ff1\"><div class=\"ttname\"><a href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\">Dune::AffineGeometry::coorddimension</a></div><div class=\"ttdeci\">static const int coorddimension</div><div class=\"ttdoc\">Dimension of the world space.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:508</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ab02786260c6683043bdd2abbfa3b38d0\"><div class=\"ttname\"><a href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">Dune::AffineGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the mapping.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:603</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ab12c72bfe3706eb3a59d2da456072e7a\"><div class=\"ttname\"><a href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\">Dune::AffineGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Obtain the centroid of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:595</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ab6541ba558e3f83cf97d7c9144868c85\"><div class=\"ttname\"><a href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\">Dune::AffineGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:679</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ab8847944e2ea7863aaa8b776731c2081\"><div class=\"ttname\"><a href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">Dune::AffineGeometry::ctype</a></div><div class=\"ttdeci\">ct ctype</div><div class=\"ttdoc\">Type used for coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:502</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ace950095803d35bb31d0737147be2cb4\"><div class=\"ttname\"><a href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">Dune::AffineGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddimension > GlobalCoordinate</div><div class=\"ttdoc\">Type for coordinate vector in world space.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:514</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ae84f12a62f95e74294a512e5fc79fd91\"><div class=\"ttname\"><a href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\">Dune::AffineGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Always true: this is an affine geometry.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:580</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_ae884dc0b944ffb5ecd968f1a47b92ba9\"><div class=\"ttname\"><a href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\">Dune::AffineGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">const JacobianTransposed & jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:657</div></div>\n-<div class=\"ttc\" id=\"aa01107_html_af88eeea1893866eb58454d3f69da1e2b\"><div class=\"ttname\"><a href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\">Dune::AffineGeometry::volume</a></div><div class=\"ttdeci\">Volume volume() const</div><div class=\"ttdoc\">Obtain the volume of the element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:646</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n+<div class=\"ttc\" id=\"aa01135_html\"><div class=\"ttname\"><a href=\"a01135.html\">Dune::MappedGeometry</a></div><div class=\"ttdoc\">Geometry parametrized by a LocalFunction and a LocalGeometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:65</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a0a60875cb95949396a466aef9a184f20\"><div class=\"ttname\"><a href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">Dune::MappedGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(std::declval< Map >()(std::declval< typename Geo::GlobalCoordinate >()))> GlobalCoordinate</div><div class=\"ttdoc\">type of global coordinates</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:71</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a0e74733fcdc8e95513e712a5ba95ae93\"><div class=\"ttname\"><a href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\">Dune::MappedGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Map the center of the wrapped geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:162</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a229568ce47471584c387dd3b382c02f7\"><div class=\"ttname\"><a href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\">Dune::MappedGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:310</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a24c95884a9838f3d67802c088001d897\"><div class=\"ttname\"><a href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">Dune::MappedGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:296</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a2deff50ea81410eb14e695828e44e44d\"><div class=\"ttname\"><a href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">Dune::MappedGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:284</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a3778ccb7cef7b52f69a0f0b3b4deb74c\"><div class=\"ttname\"><a href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\">Dune::MappedGeometry::MappedGeometry</a></div><div class=\"ttdeci\">MappedGeometry(Map_ &&mapping, Geo_ &&geometry, bool affine=false)</div><div class=\"ttdoc\">Constructor from mapping to parametrize the geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:125</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a4c4019124eaefd70ffc1c3db352ab6d3\"><div class=\"ttname\"><a href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">Dune::MappedGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">type of jacobian transposed</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:89</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a64790df7abd3e18bfb12732e41fa907d\"><div class=\"ttname\"><a href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">Dune::MappedGeometry::mydimension</a></div><div class=\"ttdeci\">static constexpr int mydimension</div><div class=\"ttdoc\">geometry dimension</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:77</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a6a7a94598f3817d3aeef78b59774fabe\"><div class=\"ttname\"><a href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">Dune::MappedGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Obtain the geometry type from the reference element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:143</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a76bb25b2a7da1d92f31becae6bdc5ef8\"><div class=\"ttname\"><a href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">Dune::MappedGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">typename Geo::LocalCoordinate LocalCoordinate</div><div class=\"ttdoc\">type of local coordinates</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:68</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a79cdb7934c62e9984e2b356b5ce55129\"><div class=\"ttname\"><a href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">Dune::MappedGeometry::ctype</a></div><div class=\"ttdeci\">typename Geo::ctype ctype</div><div class=\"ttdoc\">coordinate type</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:74</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a7e248ee33864ab43b068b0645659d678\"><div class=\"ttname\"><a href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">Dune::MappedGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Evaluate the inverse coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:197</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a8f2a5fb4744012b72805e60626470598\"><div class=\"ttname\"><a href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Dune::MappedGeometry::Geometry</a></div><div class=\"ttdeci\">Geo Geometry</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:108</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a8f4e6430cf3af81c064567ad2a2deea2\"><div class=\"ttname\"><a href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\">Dune::MappedGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:155</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a904a6424274079743a2ba05a9e3a9786\"><div class=\"ttname\"><a href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\">Dune::MappedGeometry::coorddimension</a></div><div class=\"ttdeci\">static constexpr int coorddimension</div><div class=\"ttdoc\">coordinate dimension</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:80</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a9af892dde1cf1c1e9d56c3c754c0d756\"><div class=\"ttname\"><a href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">Dune::MappedGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">type of jacobian inverse transposed</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:95</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a9b2c5492ef2af6964f11c9382ee386aa\"><div class=\"ttname\"><a href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Dune::MappedGeometry::Mapping</a></div><div class=\"ttdeci\">Map Mapping</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:105</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a9be03a7562461294d97d69c3b9b524b9\"><div class=\"ttname\"><a href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">Dune::MappedGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:176</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_a9e49caf1dc32d4b169ca8b3e6ce0375c\"><div class=\"ttname\"><a href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">Dune::MappedGeometry::refElement</a></div><div class=\"ttdeci\">ReferenceElement refElement() const</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:323</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_aa501aa8e052e617ac17c0aba0496408d\"><div class=\"ttname\"><a href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\">Dune::MappedGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image by given quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:259</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ab123d20fbb6bd4da860bbdd3ab055ffa\"><div class=\"ttname\"><a href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">Dune::MappedGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:149</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ab20774a141549e302e68c82bc2f661eb\"><div class=\"ttname\"><a href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">Dune::MappedGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">type of jacobian inverse</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:92</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ab4628714f73960a1139cf8bda0d5f7fc\"><div class=\"ttname\"><a href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">Dune::MappedGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const MappedGeometry &geometry)</div><div class=\"ttdoc\">Obtain the reference-element related to this geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:316</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ac4bba6180c6d623bc1124a44413dc6a3\"><div class=\"ttname\"><a href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">Dune::MappedGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:241</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ac903ac738ae45e8e55599dd9d462e437\"><div class=\"ttname\"><a href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Dune::MappedGeometry::Volume</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(Dune::power(std::declval< ctype >(), mydimension))> Volume</div><div class=\"ttdoc\">type of volume</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:83</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_adc9100c25955043886248662db0039a8\"><div class=\"ttname\"><a href=\"a01135.html#adc9100c25955043886248662db0039a8\">Dune::MappedGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Is this mapping affine? Not in general, since we don't know anything about the mapping....</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:137</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ade44883006b5b261a4261133464672bd\"><div class=\"ttname\"><a href=\"a01135.html#ade44883006b5b261a4261133464672bd\">Dune::MappedGeometry::DerivativeMapping</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(derivative(std::declval< Map >()))> DerivativeMapping</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:111</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_ae2ad60a19b546728667b349331cd3134\"><div class=\"ttname\"><a href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">Dune::MappedGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:272</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_aec821a975f82d2a1fa673a32bb184b94\"><div class=\"ttname\"><a href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\">Dune::MappedGeometry::MatrixHelper</a></div><div class=\"ttdeci\">Impl::FieldMatrixHelper< ctype > MatrixHelper</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:102</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_af0a38a30cbc8998425f57da374b6b5a9\"><div class=\"ttname\"><a href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Dune::MappedGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">type of jacobian</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:86</div></div>\n+<div class=\"ttc\" id=\"aa01135_html_af104ddb993eb80b1fa137b03dcd020c5\"><div class=\"ttname\"><a href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">Dune::MappedGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:225</div></div>\n+<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n+<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,816 +1,405 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-affinegeometry.hh\n+mappedgeometry.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n-6#define DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n+5#ifndef DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n+6#define DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n 7\n-13#include <cmath>\n-14\n-15#include <dune/common/fmatrix.hh>\n-16#include <dune/common/fvector.hh>\n-17\n-18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-19\n-_\b2_\b0namespace _\bD_\bu_\bn_\be\n-21{\n-22\n-23 // External Forward Declarations\n-24 // -----------------------------\n-25\n-_\b2_\b6 namespace Geo\n-27 {\n+8#include <cassert>\n+9#include <limits>\n+10#include <optional>\n+11#include <stdexcept>\n+12#include <type_traits>\n+13\n+14#include <dune/common/copyableoptional.hh>\n+15#include <dune/common/exceptions.hh>\n+16#include <dune/common/fmatrix.hh>\n+17#include <dune/common/fvector.hh>\n+18#include <dune/common/math.hh>\n+19#include <dune/common/transpose.hh>\n+20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n+21#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n+22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+24#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n+25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n+26\n+27namespace _\bD_\bu_\bn_\be {\n 28\n-29 template< typename Implementation >\n-30 class _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n-31\n-32 template< class ctype, int dim >\n-_\b3_\b3 class _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn;\n-34\n-35 template< class ctype, int dim >\n-36 struct _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs;\n-37\n-38 }\n-39\n-40\n-41 namespace Impl\n-42 {\n-43\n-44 // FieldMatrixHelper\n-45 // -----------------\n-46\n-47 template< class ct >\n-48 struct FieldMatrixHelper\n-49 {\n-50 typedef ct ctype;\n-51\n-52 template< int m, int n >\n-53 static void Ax ( const FieldMatrix< ctype, m, n > &A, const FieldVector<\n-ctype, n > &x, FieldVector< ctype, m > &ret )\n-54 {\n-55 for( int i = 0; i < m; ++i )\n-56 {\n-57 ret[ i ] = ctype( 0 );\n-58 for( int j = 0; j < n; ++j )\n-59 ret[ i ] += A[ i ][ j ] * x[ j ];\n-60 }\n-61 }\n-62\n-63 template< int m, int n >\n-64 static void ATx ( const FieldMatrix< ctype, m, n > &A, const FieldVector<\n-ctype, m > &x, FieldVector< ctype, n > &ret )\n-65 {\n-66 for( int i = 0; i < n; ++i )\n-67 {\n-68 ret[ i ] = ctype( 0 );\n-69 for( int j = 0; j < m; ++j )\n-70 ret[ i ] += A[ j ][ i ] * x[ j ];\n-71 }\n-72 }\n-73\n-74 template< int m, int n, int p >\n-75 static void AB ( const FieldMatrix< ctype, m, n > &A, const FieldMatrix<\n-ctype, n, p > &B, FieldMatrix< ctype, m, p > &ret )\n-76 {\n-77 for( int i = 0; i < m; ++i )\n-78 {\n-79 for( int j = 0; j < p; ++j )\n-80 {\n-81 ret[ i ][ j ] = ctype( 0 );\n-82 for( int k = 0; k < n; ++k )\n-83 ret[ i ][ j ] += A[ i ][ k ] * B[ k ][ j ];\n-84 }\n-85 }\n-86 }\n+63template <class Map, class Geo>\n+_\b6_\b4class _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+65{\n+66public:\n+_\b6_\b8 using _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = typename Geo::LocalCoordinate;\n+69\n+_\b7_\b1 using _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = std::remove_reference_t<decltype(std::declval<Map>\n+()(std::declval<typename Geo::GlobalCoordinate>()))>;\n+72\n+_\b7_\b4 using _\bc_\bt_\by_\bp_\be = typename Geo::ctype;\n+75\n+_\b7_\b7 static constexpr int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = LocalCoordinate::size();\n+78\n+_\b8_\b0 static constexpr int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = GlobalCoordinate::size();\n+81\n+_\b8_\b3 using _\bV_\bo_\bl_\bu_\bm_\be = std::remove_reference_t<decltype(Dune::power(std::\n+declval<ctype>(),_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn))>;\n+84\n+_\b8_\b6 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = FieldMatrix<ctype, coorddimension, mydimension>;\n 87\n-88 template< int m, int n, int p >\n-89 static void ATBT ( const FieldMatrix< ctype, m, n > &A, const FieldMatrix<\n-ctype, p, m > &B, FieldMatrix< ctype, n, p > &ret )\n-90 {\n-91 for( int i = 0; i < n; ++i )\n-92 {\n-93 for( int j = 0; j < p; ++j )\n-94 {\n-95 ret[ i ][ j ] = ctype( 0 );\n-96 for( int k = 0; k < m; ++k )\n-97 ret[ i ][ j ] += A[ k ][ i ] * B[ j ][ k ];\n-98 }\n-99 }\n-100 }\n-101\n-102 template< int m, int n >\n-103 static void ATA_L ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n-ctype, n, n > &ret )\n-104 {\n-105 for( int i = 0; i < n; ++i )\n-106 {\n-107 for( int j = 0; j <= i; ++j )\n-108 {\n-109 ret[ i ][ j ] = ctype( 0 );\n-110 for( int k = 0; k < m; ++k )\n-111 ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];\n-112 }\n-113 }\n-114 }\n-115\n-116 template< int m, int n >\n-117 static void ATA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype,\n-n, n > &ret )\n-118 {\n-119 for( int i = 0; i < n; ++i )\n-120 {\n-121 for( int j = 0; j <= i; ++j )\n-122 {\n-123 ret[ i ][ j ] = ctype( 0 );\n-124 for( int k = 0; k < m; ++k )\n-125 ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];\n-126 ret[ j ][ i ] = ret[ i ][ j ];\n-127 }\n-128\n-129 ret[ i ][ i ] = ctype( 0 );\n-130 for( int k = 0; k < m; ++k )\n-131 ret[ i ][ i ] += A[ k ][ i ] * A[ k ][ i ];\n-132 }\n-133 }\n-134\n-135 template< int m, int n >\n-136 static void AAT_L ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n-ctype, m, m > &ret )\n-137 {\n-138 /*\n-139 if (m==2) {\n-140 ret[0][0] = A[0]*A[0];\n-141 ret[1][1] = A[1]*A[1];\n-142 ret[1][0] = A[0]*A[1];\n-143 }\n-144 else\n-145 */\n-146 for( int i = 0; i < m; ++i )\n-147 {\n-148 for( int j = 0; j <= i; ++j )\n-149 {\n-150 ctype &retij = ret[ i ][ j ];\n-151 retij = A[ i ][ 0 ] * A[ j ][ 0 ];\n-152 for( int k = 1; k < n; ++k )\n-153 retij += A[ i ][ k ] * A[ j ][ k ];\n-154 }\n-155 }\n-156 }\n-157\n-158 template< int m, int n >\n-159 static void AAT ( const FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype,\n-m, m > &ret )\n-160 {\n-161 for( int i = 0; i < m; ++i )\n-162 {\n-163 for( int j = 0; j < i; ++j )\n-164 {\n-165 ret[ i ][ j ] = ctype( 0 );\n-166 for( int k = 0; k < n; ++k )\n-167 ret[ i ][ j ] += A[ i ][ k ] * A[ j ][ k ];\n-168 ret[ j ][ i ] = ret[ i ][ j ];\n-169 }\n-170 ret[ i ][ i ] = ctype( 0 );\n-171 for( int k = 0; k < n; ++k )\n-172 ret[ i ][ i ] += A[ i ][ k ] * A[ i ][ k ];\n-173 }\n-174 }\n-175\n-176 template< int n >\n-177 static void Lx ( const FieldMatrix< ctype, n, n > &L, const FieldVector<\n-ctype, n > &x, FieldVector< ctype, n > &ret )\n-178 {\n-179 for( int i = 0; i < n; ++i )\n-180 {\n-181 ret[ i ] = ctype( 0 );\n-182 for( int j = 0; j <= i; ++j )\n-183 ret[ i ] += L[ i ][ j ] * x[ j ];\n-184 }\n-185 }\n-186\n-187 template< int n >\n-188 static void LTx ( const FieldMatrix< ctype, n, n > &L, const FieldVector<\n-ctype, n > &x, FieldVector< ctype, n > &ret )\n-189 {\n-190 for( int i = 0; i < n; ++i )\n-191 {\n-192 ret[ i ] = ctype( 0 );\n-193 for( int j = i; j < n; ++j )\n-194 ret[ i ] += L[ j ][ i ] * x[ j ];\n-195 }\n-196 }\n-197\n-198 template< int n >\n-199 static void LTL ( const FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype,\n-n, n > &ret )\n-200 {\n-201 for( int i = 0; i < n; ++i )\n-202 {\n-203 for( int j = 0; j < i; ++j )\n-204 {\n-205 ret[ i ][ j ] = ctype( 0 );\n-206 for( int k = i; k < n; ++k )\n-207 ret[ i ][ j ] += L[ k ][ i ] * L[ k ][ j ];\n-208 ret[ j ][ i ] = ret[ i ][ j ];\n-209 }\n-210 ret[ i ][ i ] = ctype( 0 );\n-211 for( int k = i; k < n; ++k )\n-212 ret[ i ][ i ] += L[ k ][ i ] * L[ k ][ i ];\n+_\b8_\b9 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, mydimension, coorddimension>;\n+90\n+_\b9_\b2 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = FieldMatrix<ctype, mydimension, coorddimension>;\n+93\n+_\b9_\b5 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, coorddimension,\n+mydimension>;\n+96\n+97private:\n+98 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs = _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n+99 using ReferenceElement = typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n+100\n+101protected:\n+_\b1_\b0_\b2 using _\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br = Impl::FieldMatrixHelper<ctype>;\n+103\n+104 // type of the mapping representation the geometry parametrization\n+_\b1_\b0_\b5 using _\bM_\ba_\bp_\bp_\bi_\bn_\bg = Map;\n+106\n+107 // type of the geometry that is wrapped\n+_\b1_\b0_\b8 using _\bG_\be_\bo_\bm_\be_\bt_\br_\by = Geo;\n+109\n+110 // type of a mapping representing the derivative of `Map` w.r.t.\n+`GlobalCoordinate`\n+_\b1_\b1_\b1 using _\bD_\be_\br_\bi_\bv_\ba_\bt_\bi_\bv_\be_\bM_\ba_\bp_\bp_\bi_\bn_\bg = std::remove_reference_t<decltype(derivative(std::\n+declval<Map>()))>;\n+112\n+113public:\n+122 template <class Geo_, class Map_,\n+123 std::enable_if_t<Dune::IsInteroperable<Map, Map_>::value, int> = 0,\n+124 std::enable_if_t<Dune::IsInteroperable<Geo, Geo_>::value, int> = 0>\n+_\b1_\b2_\b5 _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (Map_&& mapping, Geo_&& geometry, bool _\ba_\bf_\bf_\bi_\bn_\be = false)\n+126 : mapping_(_\bs_\bt_\bd::forward<Map_>(mapping))\n+127 , dMapping_(derivative(*mapping_))\n+128 , geometry_(_\bs_\bt_\bd::forward<Geo_>(geometry))\n+129 , affine_(_\ba_\bf_\bf_\bi_\bn_\be)\n+130 {}\n+131\n+_\b1_\b3_\b7 bool _\ba_\bf_\bf_\bi_\bn_\be () const\n+138 {\n+139 return affine_;\n+140 }\n+141\n+_\b1_\b4_\b3 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const\n+144 {\n+145 return geometry_.type();\n+146 }\n+147\n+_\b1_\b4_\b9 int _\bc_\bo_\br_\bn_\be_\br_\bs () const\n+150 {\n+151 return geometry_.corners();\n+152 }\n+153\n+_\b1_\b5_\b5 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br (int i) const\n+156 {\n+157 assert( (i >= 0) && (i < _\bc_\bo_\br_\bn_\be_\br_\bs()) );\n+158 return mapping()(geometry_.corner(i));\n+159 }\n+160\n+_\b1_\b6_\b2 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const\n+163 {\n+164 return mapping()(geometry_.center());\n+165 }\n+166\n+_\b1_\b7_\b6 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+177 {\n+178 return mapping()(geometry_.global(_\bl_\bo_\bc_\ba_\bl));\n+179 }\n+180\n+_\b1_\b9_\b7 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl (const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& y, Impl::\n+GaussNewtonOptions<ctype> opts = {}) const\n+198 {\n+199 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be x = _\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt().position(0,0);\n+200 Impl::GaussNewtonErrorCode err = Impl::gaussNewton(\n+201 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(local); },\n+202 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(local);\n+},\n+203 y, x, opts\n+204 );\n+205\n+206 if (err != Impl::GaussNewtonErrorCode::OK)\n+207 DUNE_THROW(Dune::Exception,\n+208 \"Local coordinate can not be recovered from global coordinate, error code =\n+\" << int(err) << \"\\n\"\n+209 << \" (global(x) - y).two_norm() = \" << (_\bg_\bl_\bo_\bb_\ba_\bl(x) - y).two_norm()\n+210 << \" > tol = \" << opts.absTol);\n+211\n+212 return x;\n 213 }\n-214 }\n-215\n-216 template< int n >\n-217 static void LLT ( const FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype,\n-n, n > &ret )\n-218 {\n-219 for( int i = 0; i < n; ++i )\n-220 {\n-221 for( int j = 0; j < i; ++j )\n-222 {\n-223 ret[ i ][ j ] = ctype( 0 );\n-224 for( int k = 0; k <= j; ++k )\n-225 ret[ i ][ j ] += L[ i ][ k ] * L[ j ][ k ];\n-226 ret[ j ][ i ] = ret[ i ][ j ];\n-227 }\n-228 ret[ i ][ i ] = ctype( 0 );\n-229 for( int k = 0; k <= i; ++k )\n-230 ret[ i ][ i ] += L[ i ][ k ] * L[ i ][ k ];\n-231 }\n-232 }\n-233\n-234 template< int n >\n-235 static bool cholesky_L ( const FieldMatrix< ctype, n, n > &A, FieldMatrix<\n-ctype, n, n > &ret, const bool checkSingular = false )\n-236 {\n-237 using std::sqrt;\n-238 for( int i = 0; i < n; ++i )\n-239 {\n-240 ctype &rii = ret[ i ][ i ];\n-241\n-242 ctype xDiag = A[ i ][ i ];\n-243 for( int j = 0; j < i; ++j )\n-244 xDiag -= ret[ i ][ j ] * ret[ i ][ j ];\n-245\n-246 // in some cases A can be singular, e.g. when checking local for\n-247 // outside points during checkInside\n-248 if( checkSingular && ! ( xDiag > ctype( 0 )) )\n-249 return false ;\n-250\n-251 // otherwise this should be true always\n-252 assert( xDiag > ctype( 0 ) );\n-253 rii = sqrt( xDiag );\n-254\n-255 ctype invrii = ctype( 1 ) / rii;\n-256 for( int k = i+1; k < n; ++k )\n-257 {\n-258 ctype x = A[ k ][ i ];\n-259 for( int j = 0; j < i; ++j )\n-260 x -= ret[ i ][ j ] * ret[ k ][ j ];\n-261 ret[ k ][ i ] = invrii * x;\n-262 }\n-263 }\n-264\n-265 // return true for meaning A is non-singular\n-266 return true;\n-267 }\n-268\n-269 template< int n >\n-270 static ctype detL ( const FieldMatrix< ctype, n, n > &L )\n-271 {\n-272 ctype det( 1 );\n-273 for( int i = 0; i < n; ++i )\n-274 det *= L[ i ][ i ];\n-275 return det;\n-276 }\n-277\n-278 template< int n >\n-279 static ctype invL ( FieldMatrix< ctype, n, n > &L )\n-280 {\n-281 ctype det( 1 );\n-282 for( int i = 0; i < n; ++i )\n-283 {\n-284 ctype &lii = L[ i ][ i ];\n-285 det *= lii;\n-286 lii = ctype( 1 ) / lii;\n-287 for( int j = 0; j < i; ++j )\n-288 {\n-289 ctype &lij = L[ i ][ j ];\n-290 ctype x = lij * L[ j ][ j ];\n-291 for( int k = j+1; k < i; ++k )\n-292 x += L[ i ][ k ] * L[ k ][ j ];\n-293 lij = (-lii) * x;\n-294 }\n-295 }\n-296 return det;\n-297 }\n-298\n-299 // calculates x := L^{-1} x\n-300 template< int n >\n-301 static void invLx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n >\n-&x )\n-302 {\n-303 for( int i = 0; i < n; ++i )\n-304 {\n-305 for( int j = 0; j < i; ++j )\n-306 x[ i ] -= L[ i ][ j ] * x[ j ];\n-307 x[ i ] /= L[ i ][ i ];\n-308 }\n-309 }\n-310\n-311 // calculates x := L^{-T} x\n-312 template< int n >\n-313 static void invLTx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n >\n-&x )\n-314 {\n-315 for( int i = n; i > 0; --i )\n-316 {\n-317 for( int j = i; j < n; ++j )\n-318 x[ i-1 ] -= L[ j ][ i-1 ] * x[ j ];\n-319 x[ i-1 ] /= L[ i-1 ][ i-1 ];\n-320 }\n-321 }\n-322\n-323 template< int n >\n-324 static ctype spdDetA ( const FieldMatrix< ctype, n, n > &A )\n-325 {\n-326 // return A[0][0]*A[1][1]-A[1][0]*A[1][0];\n-327 FieldMatrix< ctype, n, n > L;\n-328 cholesky_L( A, L );\n-329 return detL( L );\n-330 }\n-331\n-332 template< int n >\n-333 static ctype spdInvA ( FieldMatrix< ctype, n, n > &A )\n-334 {\n-335 FieldMatrix< ctype, n, n > L;\n-336 cholesky_L( A, L );\n-337 const ctype det = invL( L );\n-338 LTL( L, A );\n-339 return det;\n-340 }\n-341\n-342 // calculate x := A^{-1} x\n-343 template< int n >\n-344 static bool spdInvAx ( FieldMatrix< ctype, n, n > &A, FieldVector< ctype, n\n-> &x, const bool checkSingular = false )\n-345 {\n-346 FieldMatrix< ctype, n, n > L;\n-347 const bool invertible = cholesky_L( A, L, checkSingular );\n-348 if( ! invertible ) return invertible ;\n-349 invLx( L, x );\n-350 invLTx( L, x );\n-351 return invertible;\n-352 }\n-353\n-354 template< int m, int n >\n-355 static ctype detATA ( const FieldMatrix< ctype, m, n > &A )\n-356 {\n-357 if( m >= n )\n-358 {\n-359 FieldMatrix< ctype, n, n > ata;\n-360 ATA_L( A, ata );\n-361 return spdDetA( ata );\n-362 }\n-363 else\n-364 return ctype( 0 );\n-365 }\n-366\n-372 template< int m, int n >\n-373 static ctype sqrtDetAAT ( const FieldMatrix< ctype, m, n > &A )\n-374 {\n-375 using std::abs;\n-376 using std::sqrt;\n-377 // These special cases are here not only for speed reasons:\n-378 // The general implementation aborts if the matrix is almost singular,\n-379 // and the special implementation provide a stable way to handle that case.\n-380 if( (n == 2) && (m == 2) )\n-381 {\n-382 // Special implementation for 2x2 matrices: faster and more stable\n-383 return abs( A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ] );\n-384 }\n-385 else if( (n == 3) && (m == 3) )\n-386 {\n-387 // Special implementation for 3x3 matrices\n-388 const ctype v0 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 1 ][ 1 ] * A[ 0 ][ 2 ];\n-389 const ctype v1 = A[ 0 ][ 2 ] * A[ 1 ][ 0 ] - A[ 1 ][ 2 ] * A[ 0 ][ 0 ];\n-390 const ctype v2 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 1 ][ 0 ] * A[ 0 ][ 1 ];\n-391 return abs( v0 * A[ 2 ][ 0 ] + v1 * A[ 2 ][ 1 ] + v2 * A[ 2 ][ 2 ] );\n-392 }\n-393 else if ( (n == 3) && (m == 2) )\n-394 {\n-395 // Special implementation for 2x3 matrices\n-396 const ctype v0 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 0 ][ 1 ] * A[ 1 ][ 0 ];\n-397 const ctype v1 = A[ 0 ][ 0 ] * A[ 1 ][ 2 ] - A[ 1 ][ 0 ] * A[ 0 ][ 2 ];\n-398 const ctype v2 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 0 ][ 2 ] * A[ 1 ][ 1 ];\n-399 return sqrt( v0*v0 + v1*v1 + v2*v2);\n-400 }\n-401 else if( n >= m )\n-402 {\n-403 // General case\n-404 FieldMatrix< ctype, m, m > aat;\n-405 AAT_L( A, aat );\n-406 return spdDetA( aat );\n-407 }\n-408 else\n-409 return ctype( 0 );\n-410 }\n-411\n-412 // A^{-1}_L = (A^T A)^{-1} A^T\n-413 // => A^{-1}_L A = I\n-414 template< int m, int n >\n-415 static ctype leftInvA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n-ctype, n, m > &ret )\n-416 {\n-417 static_assert((m >= n), \"Matrix has no left inverse.\");\n-418 using std::abs;\n-419 if constexpr( (n == 2) && (m == 2) )\n-420 {\n-421 const ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);\n-422 const ctype detInv = ctype( 1 ) / det;\n-423 ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;\n-424 ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;\n-425 ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;\n-426 ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;\n-427 return abs( det );\n-428 }\n-429 else\n-430 {\n-431 FieldMatrix< ctype, n, n > ata;\n-432 ATA_L( A, ata );\n-433 const ctype det = spdInvA( ata );\n-434 ATBT( ata, A, ret );\n-435 return det;\n-436 }\n-437 }\n-438\n-439 template< int m, int n >\n-440 static bool leftInvAx ( const FieldMatrix< ctype, m, n > &A, const\n-FieldVector< ctype, m > &x, FieldVector< ctype, n > &y )\n-441 {\n-442 static_assert((m >= n), \"Matrix has no left inverse.\");\n-443 FieldMatrix< ctype, n, n > ata;\n-444 ATx( A, x, y );\n-445 ATA_L( A, ata );\n-446 return spdInvAx( ata, y, true );\n-447 }\n-448\n-450 template< int m, int n >\n-451 static ctype rightInvA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n-ctype, n, m > &ret )\n-452 {\n-453 static_assert((n >= m), \"Matrix has no right inverse.\");\n-454 using std::abs;\n-455 if constexpr( (n == 2) && (m == 2) )\n-456 {\n-457 const ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);\n-458 const ctype detInv = ctype( 1 ) / det;\n-459 ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;\n-460 ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;\n-461 ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;\n-462 ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;\n-463 return abs( det );\n-464 }\n-465 else\n-466 {\n-467 FieldMatrix< ctype, m , m > aat;\n-468 AAT_L( A, aat );\n-469 const ctype det = spdInvA( aat );\n-470 ATBT( A , aat , ret );\n-471 return det;\n-472 }\n-473 }\n-474\n-475 template< int m, int n >\n-476 static bool xTRightInvA ( const FieldMatrix< ctype, m, n > &A, const\n-FieldVector< ctype, n > &x, FieldVector< ctype, m > &y )\n-477 {\n-478 static_assert((n >= m), \"Matrix has no right inverse.\");\n-479 FieldMatrix< ctype, m, m > aat;\n-480 Ax( A, x, y );\n-481 AAT_L( A, aat );\n-482 // check whether aat is singular and return true if non-singular\n-483 return spdInvAx( aat, y, true );\n-484 }\n-485 };\n-486\n-487 } // namespace Impl\n-488\n-489\n-490\n-496 template< class ct, int mydim, int cdim>\n-_\b4_\b9_\b7 class _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-498 {\n-499 public:\n-500\n-_\b5_\b0_\b2 typedef ct _\bc_\bt_\by_\bp_\be;\n-503\n-_\b5_\b0_\b5 static const int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn= mydim;\n-506\n-_\b5_\b0_\b8 static const int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = cdim;\n-509\n-_\b5_\b1_\b1 typedef FieldVector< ctype, mydimension > _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n-512\n-_\b5_\b1_\b4 typedef FieldVector< ctype, coorddimension > _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n-515\n-_\b5_\b1_\b7 typedef _\bc_\bt_\by_\bp_\be _\bV_\bo_\bl_\bu_\bm_\be;\n-518\n-_\b5_\b2_\b0 typedef FieldMatrix< ctype, mydimension, coorddimension >\n-_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n-521\n-_\b5_\b2_\b3 typedef FieldMatrix< ctype, coorddimension, mydimension >\n-_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n-524\n-_\b5_\b2_\b6 typedef FieldMatrix< ctype, coorddimension, mydimension > _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn;\n-527\n-_\b5_\b2_\b9 typedef FieldMatrix< ctype, mydimension, coorddimension > _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be;\n-530\n-531 private:\n-533 typedef _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b<_\b _\bc_\bt_\by_\bp_\be_\b,\n-_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b> > _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n-534\n-535 typedef _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b> _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs;\n-536\n-537 // Helper class to compute a matrix pseudo inverse\n-538 typedef Impl::FieldMatrixHelper< ct > MatrixHelper;\n-539\n-540 public:\n-_\b5_\b4_\b7 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n-548\n-_\b5_\b5_\b0 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt &refElement, const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-&origin,\n-551 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &jt )\n-552 : refElement_(refElement), origin_(origin), jacobianTransposed_(jt)\n-553 {\n-554 integrationElement_ = MatrixHelper::template rightInvA< mydimension,\n-coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );\n-555 }\n-556\n-_\b5_\b5_\b8 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &origin,\n-559 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &jt )\n-560 : _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general( gt ), origin, jt)\n-561 { }\n-562\n-564 template< class CoordVector >\n-_\b5_\b6_\b5 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt &refElement, const CoordVector\n-&coordVector )\n-566 : refElement_(refElement), origin_(coordVector[0])\n-567 {\n-568 for( int i = 0; i < _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; ++i )\n-569 jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;\n-570 integrationElement_ = MatrixHelper::template rightInvA< mydimension,\n-coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );\n-571 }\n-572\n-574 template< class CoordVector >\n-_\b5_\b7_\b5 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, const CoordVector &coordVector )\n-576 : _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general( gt ), coordVector)\n-577 { }\n-578\n-_\b5_\b8_\b0 bool _\ba_\bf_\bf_\bi_\bn_\be () const { return true; }\n-581\n-_\b5_\b8_\b3 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const { return refElement_._\bt_\by_\bp_\be(); }\n-584\n-_\b5_\b8_\b6 int _\bc_\bo_\br_\bn_\be_\br_\bs () const { return refElement_._\bs_\bi_\bz_\be( _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn ); }\n-587\n-_\b5_\b8_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br ( int i ) const\n-590 {\n-591 return _\bg_\bl_\bo_\bb_\ba_\bl( refElement_._\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn( i, _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn ) );\n-592 }\n-593\n-_\b5_\b9_\b5 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const { return _\bg_\bl_\bo_\bb_\ba_\bl( refElement_._\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn( 0,\n-0 ) ); }\n-596\n-_\b6_\b0_\b3 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl ( const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl ) const\n-604 {\n-605 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl( origin_ );\n-606 jacobianTransposed_.umtv( _\bl_\bo_\bc_\ba_\bl, _\bg_\bl_\bo_\bb_\ba_\bl );\n-607 return _\bg_\bl_\bo_\bb_\ba_\bl;\n-608 }\n-609\n-_\b6_\b2_\b3 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl ( const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bg_\bl_\bo_\bb_\ba_\bl ) const\n-624 {\n-625 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl;\n-626 jacobianInverseTransposed_.mtv( _\bg_\bl_\bo_\bb_\ba_\bl - origin_, _\bl_\bo_\bc_\ba_\bl );\n-627 return _\bl_\bo_\bc_\ba_\bl;\n-628 }\n-629\n-_\b6_\b4_\b0 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl)\n-const\n-641 {\n-642 return integrationElement_;\n-643 }\n-644\n-_\b6_\b4_\b6 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be () const\n-647 {\n-648 return integrationElement_ * refElement_._\bv_\bo_\bl_\bu_\bm_\be();\n-649 }\n-650\n-_\b6_\b5_\b7 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ([[maybe_unused]] const\n-_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n-658 {\n-659 return jacobianTransposed_;\n-660 }\n-661\n-_\b6_\b6_\b8 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ([\n-[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n-669 {\n-670 return jacobianInverseTransposed_;\n-671 }\n-672\n-_\b6_\b7_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n-680 {\n-681 return jacobianTransposed_.transposed();\n-682 }\n-683\n-_\b6_\b9_\b0 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-&_\bl_\bo_\bc_\ba_\bl) const\n-691 {\n-692 return jacobianInverseTransposed_.transposed();\n-693 }\n-694\n-_\b6_\b9_\b5 friend _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt ( const _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by &geometry )\n-696 {\n-697 return geometry.refElement_;\n-698 }\n-699\n-700 private:\n-701 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt refElement_;\n-702 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be origin_;\n-703 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd jacobianTransposed_;\n-704 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd jacobianInverseTransposed_;\n-705 _\bc_\bt_\by_\bp_\be integrationElement_;\n-706 };\n-707\n-708} // namespace Dune\n-709\n-710#endif // #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n+214\n+_\b2_\b2_\b5 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+226 {\n+227 return MatrixHelper::sqrtDetAAT(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl));\n+228 }\n+229\n+_\b2_\b4_\b1 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (Impl::ConvergenceOptions<ctype> opts = {}) const\n+242 {\n+243 _\bV_\bo_\bl_\bu_\bm_\be vol0 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), 1));\n+244 if (_\ba_\bf_\bf_\bi_\bn_\be())\n+245 return vol0;\n+246\n+247 using std::abs;\n+248 for (int p = 2; p < opts.maxIt; ++p) {\n+249 _\bV_\bo_\bl_\bu_\bm_\be vol1 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), p));\n+250 if (abs(vol1 - vol0) < opts.absTol)\n+251 return vol1;\n+252\n+253 vol0 = vol1;\n+254 }\n+255 return vol0;\n+256 }\n+257\n+_\b2_\b5_\b9 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>& quadRule) const\n+260 {\n+261 _\bV_\bo_\bl_\bu_\bm_\be vol(0);\n+262 for (const auto& qp : quadRule)\n+263 vol += _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt(qp.position()) * qp.weight();\n+264 return vol;\n+265 }\n+266\n+_\b2_\b7_\b2 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+273 {\n+274 auto&& jLocal = geometry_.jacobian(_\bl_\bo_\bc_\ba_\bl);\n+275 auto&& jMapping = (*dMapping_)(geometry_.global(_\bl_\bo_\bc_\ba_\bl));\n+276 return jMapping * jLocal;\n+277 }\n+278\n+_\b2_\b8_\b4 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+285 {\n+286 return transpose(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl));\n+287 }\n+288\n+_\b2_\b9_\b6 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+297 {\n+298 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be out;\n+299 MatrixHelper::leftInvA(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl), out);\n+300 return out;\n+301 }\n+302\n+_\b3_\b1_\b0 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n+_\bl_\bo_\bc_\ba_\bl) const\n+311 {\n+312 return transpose(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be(_\bl_\bo_\bc_\ba_\bl));\n+313 }\n+314\n+_\b3_\b1_\b6 friend ReferenceElement _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by& geometry)\n+317 {\n+318 return geometry._\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt();\n+319 }\n+320\n+321protected:\n+322 // the internal stored reference element\n+_\b3_\b2_\b3 ReferenceElement _\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt () const\n+324 {\n+325 return _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt(geometry_);\n+326 }\n+327\n+328private:\n+329 // internal reference to the stored mapping\n+330 const _\bM_\ba_\bp_\bp_\bi_\bn_\bg& mapping () const\n+331 {\n+332 return *mapping_;\n+333 }\n+334\n+335 // internal reference to the wrapped geometry\n+336 const _\bG_\be_\bo_\bm_\be_\bt_\br_\by& geometry () const\n+337 {\n+338 return geometry_;\n+339 }\n+340\n+341private:\n+343 CopyableOptional<Mapping> mapping_;\n+344\n+346 CopyableOptional<DerivativeMapping> dMapping_;\n+347\n+349 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry_;\n+350\n+352 bool affine_;\n+353};\n+354\n+355// deduction guides\n+356template <class Map, class Geo>\n+_\b3_\b5_\b7_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map&, const Geo&)\n+358 -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bM_\ba_\bp_\b,_\bG_\be_\bo_\b>;\n+359\n+360template <class Map, class Geo>\n+_\b3_\b6_\b1_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map&, const Geo&, bool)\n+362 -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bM_\ba_\bp_\b,_\bG_\be_\bo_\b>;\n+363\n+364} // end namespace Dune\n+365\n+366#endif // DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n+_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh\n+_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n+An implementation of the Geometry interface for affine geometries.\n+_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh\n+_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n+_\bs_\bt_\bd\n+STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-decltype(referenceElement(std::declval< T >()...)) ReferenceElement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:347\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-This class provides access to geometric and topological properties of a\n-reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:52\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-CoordinateField volume() const\n-obtain the volume of the reference element\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:228\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bt_\by_\bp_\be\n-GeometryType type(int i, int c) const\n-obtain the type of subentity (i,c)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:167\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n-Coordinate position(int i, int c) const\n-position of the barycenter of entity (i,c)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:190\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bi_\bz_\be\n-int size(int c) const\n-number of subentities of codimension c\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:94\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:33\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n Class providing access to the singletons of the reference elements.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Implementation of the Geometry interface for affine geometries.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:498\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AffineGeometry(const ReferenceElement &refElement, const CoordVector\n-&coordVector)\n-Create affine geometry from reference element and a vector of vertex\n-coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:565\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AffineGeometry()=default\n-Constructs an empty geometry.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AffineGeometry(Dune::GeometryType gt, const GlobalCoordinate &origin, const\n-JacobianTransposed &jt)\n-Create affine geometry from GeometryType, one vertex, and the Jacobian matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:558\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, mydimension > LocalCoordinate\n-Type for local coordinate vector.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:511\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n-Dune::GeometryType type() const\n-Obtain the type of the reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:583\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const int mydimension\n-Dimension of the geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:505\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AffineGeometry(const ReferenceElement &refElement, const GlobalCoordinate\n-&origin, const JacobianTransposed &jt)\n-Create affine geometry from reference element, one vertex, and the Jacobian\n-matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:550\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n-ctype Volume\n-Type used for volume.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:517\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename Container::ReferenceElement ReferenceElement\n+The reference element type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Geometry parametrized by a LocalFunction and a LocalGeometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:65\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+std::remove_reference_t< decltype(std::declval< Map >()(std::declval< typename\n+Geo::GlobalCoordinate >()))> GlobalCoordinate\n+type of global coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:71\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n+GlobalCoordinate center() const\n+Map the center of the wrapped geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:162\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n+&local) const\n+Obtain the transposed of the Jacobian's inverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:310\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n Obtain the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:690\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-friend ReferenceElement referenceElement(const AffineGeometry &geometry)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:695\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AffineGeometry(Dune::GeometryType gt, const CoordVector &coordVector)\n-Create affine geometry from GeometryType and a vector of vertex coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:575\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n-ctype integrationElement(const LocalCoordinate &local) const\n-Obtain the integration element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:640\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n-Type for the inverse Jacobian matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:529\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n-Type for the Jacobian matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:526\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-const JacobianInverseTransposed & jacobianInverseTransposed(const\n-LocalCoordinate &local) const\n-Obtain the transposed of the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:668\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:296\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n+Obtain the transposed of the Jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:284\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+MappedGeometry(Map_ &&mapping, Geo_ &&geometry, bool affine=false)\n+Constructor from mapping to parametrize the geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:125\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed\n-Type for the transposed Jacobian matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:520\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n+type of jacobian transposed\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:89\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int mydimension\n+geometry dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:77\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type() const\n+Obtain the geometry type from the reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:143\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+typename Geo::LocalCoordinate LocalCoordinate\n+type of local coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:68\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n+typename Geo::ctype ctype\n+coordinate type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:74\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n+LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions<\n+ctype > opts={}) const\n+Evaluate the inverse coordinate mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:197\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Geo Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:108\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n GlobalCoordinate corner(int i) const\n Obtain coordinates of the i-th corner.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:589\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n-int corners() const\n-Obtain number of corners of the corresponding reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:586\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n-LocalCoordinate local(const GlobalCoordinate &global) const\n-Evaluate the inverse mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:623\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:155\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int coorddimension\n+coordinate dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:80\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed\n-Type for the transposed inverse Jacobian matrix.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:523\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const int coorddimension\n-Dimension of the world space.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:508\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n+type of jacobian inverse transposed\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:95\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bp_\bp_\bi_\bn_\bg\n+Map Mapping\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:105\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n GlobalCoordinate global(const LocalCoordinate &local) const\n-Evaluate the mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:603\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n-GlobalCoordinate center() const\n-Obtain the centroid of the mapping's image.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:595\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+Evaluate the coordinate mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:176\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt\n+ReferenceElement refElement() const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:323\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const\n+Obtain the volume of the mapping's image by given quadrature rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:259\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n+int corners() const\n+Obtain number of corners of the corresponding reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:149\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n+type of jacobian inverse\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:92\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+friend ReferenceElement referenceElement(const MappedGeometry &geometry)\n+Obtain the reference-element related to this geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:316\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const\n+Obtain the volume of the mapping's image.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:241\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n+std::remove_reference_t< decltype(Dune::power(std::declval< ctype >(),\n+mydimension))> Volume\n+type of volume\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:83\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n+bool affine() const\n+Is this mapping affine? Not in general, since we don't know anything about the\n+mapping....\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:137\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bD_\be_\br_\bi_\bv_\ba_\bt_\bi_\bv_\be_\bM_\ba_\bp_\bp_\bi_\bn_\bg\n+std::remove_reference_t< decltype(derivative(std::declval< Map >()))>\n+DerivativeMapping\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:111\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n Jacobian jacobian(const LocalCoordinate &local) const\n Obtain the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:679\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n-ct ctype\n-Type used for coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:502\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, coorddimension > GlobalCoordinate\n-Type for coordinate vector in world space.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:514\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n-bool affine() const\n-Always true: this is an affine geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:580\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-const JacobianTransposed & jacobianTransposed(const LocalCoordinate &local)\n-const\n-Obtain the transposed of the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:657\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume() const\n-Obtain the volume of the element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:646\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:272\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br\n+Impl::FieldMatrixHelper< ctype > MatrixHelper\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:102\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n+type of jacobian\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:86\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n+ctype integrationElement(const LocalCoordinate &local) const\n+Obtain the integration element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:225\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+Abstract base class for quadrature rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n+A container for all quadrature rules of dimension dim\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00173.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00173.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: type.hh File Reference</title>\n+<title>dune-geometry: localfiniteelementgeometry.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -73,52 +73,62 @@\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n <a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">type.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">localfiniteelementgeometry.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>A unique label for each type of element that can occur in a grid. \n-<a href=\"#details\">More...</a></p>\n <div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <cstdint></code><br />\n-<code>#include <string></code><br />\n+<code>#include <functional></code><br />\n+<code>#include <limits></code><br />\n <code>#include <type_traits></code><br />\n-<code>#include <dune/common/exceptions.hh></code><br />\n+<code>#include <vector></code><br />\n+<code>#include <dune/common/fmatrix.hh></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <dune/common/math.hh></code><br />\n <code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <dune/common/unused.hh></code><br />\n+<code>#include <dune/common/std/type_traits.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00203_source.html\">dune/geometry/utility/algorithms.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00197_source.html\">dune/geometry/utility/convergence.hh</a>></code><br />\n </div>\n <p><a href=\"a00173_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01367.html\">Dune::GeometryType</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Unique label for each type of entities that can occur in DUNE grids. <a href=\"a01367.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01131.html\">Dune::LocalFiniteElementGeometry< LFE, cdim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Geometry implementation based on local-basis function parametrization. <a href=\"a01131.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00275\" id=\"r_a00275\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00275.html\">Dune::GeometryTypes</a></td></tr>\n-<tr class=\"memdesc:a00275\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Predefined <a class=\"el\" href=\"a00275.html\" title=\"Predefined GeometryTypes for common geometries.\">GeometryTypes</a> for common geometries. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr class=\"memitem:a925707539f34b98f2c6ea44b0a81b8c5\" id=\"r_a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::ostream & </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">Dune::operator<<</a> (std::ostream &s, const <a class=\"el\" href=\"a01367.html\">GeometryType</a> &a)</td></tr>\n-<tr class=\"memdesc:a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Prints the type to an output stream. <br /></td></tr>\n-<tr class=\"separator:a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:ab8428045fd8606c48bb01ef84398c9b7\" id=\"r_ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memTemplParams\" colspan=\"2\">template<class I , class LFE , class GlobalCoordinate > </td></tr>\n+<tr class=\"memitem:ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#ab8428045fd8606c48bb01ef84398c9b7\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01091.html\">Geo::ReferenceElement</a>< I >, const LFE &, std::vector< GlobalCoordinate >) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, GlobalCoordinate::dimension ></td></tr>\n+<tr class=\"separator:ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a5c32fd93843a14930083653dee620ee1\" id=\"r_a5c32fd93843a14930083653dee620ee1\"><td class=\"memTemplParams\" colspan=\"2\">template<class I , class LFE , class F , class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>> </td></tr>\n+<tr class=\"memitem:a5c32fd93843a14930083653dee620ee1\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a5c32fd93843a14930083653dee620ee1\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01091.html\">Geo::ReferenceElement</a>< I >, const LFE &, const F &) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, Range::dimension ></td></tr>\n+<tr class=\"separator:a5c32fd93843a14930083653dee620ee1\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a6515706e91a0e4a2bab9cd783a23cbd6\" id=\"r_a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memTemplParams\" colspan=\"2\">template<class LFE , class GlobalCoordinate > </td></tr>\n+<tr class=\"memitem:a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a6515706e91a0e4a2bab9cd783a23cbd6\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a>, const LFE &localFE, std::vector< GlobalCoordinate >) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, GlobalCoordinate::dimension ></td></tr>\n+<tr class=\"separator:a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a800044360dc34fc6dc86a6f5aeefecfd\" id=\"r_a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memTemplParams\" colspan=\"2\">template<class LFE , class F , class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>> </td></tr>\n+<tr class=\"memitem:a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a800044360dc34fc6dc86a6f5aeefecfd\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a>, const LFE &, const F &) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, Range::dimension ></td></tr>\n+<tr class=\"separator:a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>A unique label for each type of element that can occur in a grid. </p>\n-</div></div><!-- contents -->\n+</div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,36 +1,56 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n _\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-type.hh File Reference\n-A unique label for each type of element that can occur in a grid. _\bM_\bo_\br_\be_\b._\b._\b.\n+localfiniteelementgeometry.hh File Reference\n #include <cassert>\n-#include <cstdint>\n-#include <string>\n+#include <functional>\n+#include <limits>\n #include <type_traits>\n-#include <dune/common/exceptions.hh>\n+#include <vector>\n+#include <dune/common/fmatrix.hh>\n+#include <dune/common/fvector.hh>\n+#include <dune/common/math.hh>\n #include <dune/common/typetraits.hh>\n-#include <dune/common/unused.hh>\n+#include <dune/common/std/type_traits.hh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-\u00a0 Unique label for each type of entities that can occur in DUNE grids.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bL_\bF_\bE_\b,_\b _\bc_\bd_\bi_\bm_\b _\b>\n+\u00a0 Geometry implementation based on local-basis function parametrization.\n _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bs\n-\u00a0 Predefined _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bs for common geometries.\n-\u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-std::ostream &\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b< (std::ostream &s, const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &a)\n-\u00a0 Prints the type to an output stream.\n+template<class I , class LFE , class GlobalCoordinate >\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt< I >, const LFE &,\n+ std::vector< GlobalCoordinate >) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE,\n+ GlobalCoordinate::dimension >\n+\u00a0\n+template<class I , class LFE , class F , class Range = std::\n+invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt< I >, const LFE &,\n+ const F &) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE, Range::dimension >\n+\u00a0\n+template<class LFE , class GlobalCoordinate >\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE &localFE, std::\n+ vector< GlobalCoordinate >) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE,\n+ GlobalCoordinate::dimension >\n+\u00a0\n+template<class LFE , class F , class Range = std::invoke_result_t<F,Impl::\n+LocalCoordinate_t<LFE>>>\n+\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE &, const F &) -\n+ > _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE, Range::dimension >\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-A unique label for each type of element that can occur in a grid.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00173_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00173_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: type.hh Source File</title>\n+<title>dune-geometry: localfiniteelementgeometry.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,477 +74,435 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">type.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">localfiniteelementgeometry.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00173.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPE_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPE_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <cstdint></span></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <string></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <type_traits></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/unused.hh></span></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span>{</div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"keyword\">namespace </span>Impl</div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> {</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> </div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"keyword\">enum</span> TopologyConstruction { pyramidConstruction = 0, prismConstruction = 1 };</div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> </div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Dynamic Topology Properties</span></div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">// ---------------------------</span></div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numTopologies ( <span class=\"keywordtype\">int</span> dim ) <span class=\"keyword\">noexcept</span></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">return</span> (1u << dim);</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> }</div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">bool</span> <span class=\"keyword\">static</span> isPyramid ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 0 ) noexcept</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> {</div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> assert( (dim > 0) && (topologyId < numTopologies( dim )) );</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> assert( (0 <= codim) && (codim < dim) );</div>\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> <span class=\"keywordflow\">return</span> (((topologyId & ~1) & (1u << (dim-codim-1))) == 0);</div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> }</div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <functional></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <limits></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/std/type_traits.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00188.html\">dune/geometry/quadraturerules.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00203.html\">dune/geometry/utility/algorithms.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00197.html\">dune/geometry/utility/convergence.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> </div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE, <span class=\"keywordtype\">int</span> cdim></div>\n+<div class=\"foldopen\" id=\"foldopen00039\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html\"> 39</a></span><span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a></div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span>{</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">using </span>LocalFiniteElement = LFE;</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">using </span>LocalBasis = <span class=\"keyword\">typename</span> LFE::Traits::LocalBasisType;</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">using </span>LocalBasisTraits = <span class=\"keyword\">typename</span> LocalBasis::Traits;</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span><span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\"> 47</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> = <span class=\"keyword\">typename</span> LocalBasisTraits::DomainFieldType;</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\"> 50</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> = LocalBasisTraits::dimDomain;</div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\"> 53</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\">coorddimension</a> = cdim;</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\"> 56</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> = FieldVector<ctype, mydimension>;</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> </div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\"> 59</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> = FieldVector<ctype, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\"> 62</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> = <span class=\"keyword\">decltype</span>(power(std::declval<ctype>(),<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n <div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> isPrism ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 0 ) noexcept</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> {</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> assert( (dim > 0) && (topologyId < numTopologies( dim )) );</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> assert( (0 <= codim) && (codim < dim) );</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keywordflow\">return</span> (( (topologyId | 1) & (1u << (dim-codim-1))) != 0);</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> }</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseTopologyId ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 1 ) noexcept</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> assert( (dim >= 0) && (topologyId < numTopologies( dim )) );</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> assert( (0 <= codim) && (codim <= dim) );</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keywordflow\">return</span> topologyId & ((1u << (dim-codim)) - 1);</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> }</div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> </div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> } <span class=\"comment\">// namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> </div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"comment\">// GeometryType</span></div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"comment\">// -------------</span></div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html\"> 113</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a></div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> {</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00119\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\"> 119</a></span> <span class=\"keyword\">enum</span></div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <a class=\"code hl_enumeration\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">BasicType</a> {</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\"> 121</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\">simplex</a>, </div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\"> 122</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\">cube</a>, </div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\"> 123</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\">pyramid</a>, </div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\"> 124</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\">prism</a>, </div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\"> 125</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\">extended</a>, </div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\">none</a> </div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\"> 127</a></span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">char</span> dim_;</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> </div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keywordtype\">bool</span> none_;</div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\"> 65</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\"> 68</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">JacobianTransposed</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\"> 71</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\"> 74</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">JacobianInverseTransposed</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span><span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ad4970fc5d4a040dcd6796d7d2cc76a30\"> 78</a></span> <span class=\"keyword\">using </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a> = <a class=\"code hl_struct\" href=\"a01099.html\">Dune::ReferenceElements<ctype, mydimension></a>;</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\"> 79</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> = <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements::ReferenceElement</a>;</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span><span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\"> 82</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\">MatrixHelper</a> = Impl::FieldMatrixHelper<ctype>;</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span><span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\"> 86</a></span> <a class=\"code hl_function\" href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\">LocalFiniteElementGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00103\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\"> 103</a></span> <a class=\"code hl_function\" href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\">LocalFiniteElementGeometry</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a>& refElement,</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keyword\">const</span> LocalFiniteElement& localFE,</div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> std::vector<GlobalCoordinate> vertices)</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> : refElement_(refElement)</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> , localFE_(localFE)</div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> , vertices_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::move(vertices))</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> assert(localFE_.size() == vertices_.size());</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>Param,</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> std::enable_if_t<std::is_invocable_r_v<GlobalCoordinate,Param,LocalCoordinate>, <span class=\"keywordtype\">int</span>> = 0></div>\n+<div class=\"foldopen\" id=\"foldopen00128\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\"> 128</a></span> <a class=\"code hl_function\" href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\">LocalFiniteElementGeometry</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a>& refElement,</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> <span class=\"keyword\">const</span> LocalFiniteElement& localFE,</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> Param&& parametrization)</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> : refElement_(refElement)</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> , localFE_(localFE)</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> {</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> localFE_.localInterpolation().interpolate(parametrization, vertices_);</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> </div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId_;</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> </div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"comment\">// Internal type used for the Id. The exact nature of this type is kept</span></div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"comment\">// as an implementation detail on purpose. We use a scoped enum here because scoped enums</span></div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"comment\">// can be used as template parameters, but are not implicitly converted to other integral</span></div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"comment\">// types by the compiler. That way, we avoid unfortunate implicit conversion chains, e.g.</span></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"comment\">// people trying to work with GlobalGeometryTypeIndex, but forgetting to actually call</span></div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"comment\">// GlobalGeometryTypeIndex::index(gt) and just using gt directly.</span></div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">enum class</span> IdType : std::uint64_t</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {};</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> </div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\"> 181</a></span> <span class=\"keyword\">using </span>Id = IdType;</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00190\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a76fa3040aad4348d2eec058aa67d3b76\"> 190</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">operator</span> <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">Id</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"comment\">// recreate the exact storage layout that this class is using, making conversion</span></div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"comment\">// extremely cheap</span></div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> std::uint64_t <span class=\"keywordtype\">id</span> = dim_ | (std::uint64_t(none_) << 8) | (std::uint64_t(topologyId_) << 32);</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span>Id<span class=\"keyword\">></span>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>);</div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00210\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\"> 210</a></span> <span class=\"keyword\">constexpr</span> Id <a class=\"code hl_function\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">toId</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span>Id<span class=\"keyword\">></span>(*this);</div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span>... Args></div>\n+<div class=\"foldopen\" id=\"foldopen00144\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\"> 144</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt, Args&&... args)</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> : <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general(gt), <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Args>(args)...)</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00149\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\"> 149</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">order</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().order();</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00159\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\"> 159</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">affine</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">if</span> (!affine_)</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> affine_.emplace(affineImpl());</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keywordflow\">return</span> *affine_;</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00167\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\"> 167</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> <span class=\"keywordflow\">return</span> refElement_.type();</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00173\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\"> 173</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">return</span> refElement_.size(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>);</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00179\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\"> 179</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a> (<span class=\"keywordtype\">int</span> i)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> assert( (i >= 0) && (i < <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a>()) );</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refElement_.position(i, <a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00186\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\"> 186</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\">center</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refElement_.position(0, 0));</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00202\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\"> 202</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> <span class=\"keyword\">thread_local</span> std::vector<typename LocalBasisTraits::RangeType> shapeValues;</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().evaluateFunction(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>, shapeValues);</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> assert(shapeValues.size() == vertices_.size());</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> out(0);</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keywordflow\">for</span> (std::size_t i = 0; i < shapeValues.size(); ++i)</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> out.axpy(shapeValues[i], vertices_[i]);</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> out;</div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n </div>\n <div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00222\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\"> 222</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\">GeometryType</a>(Id <span class=\"keywordtype\">id</span>)</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> : dim_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) & 0xFF)</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> , none_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) & 0x100)</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> , topologyId_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) >> 32)</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> </div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> </div>\n <div class=\"foldopen\" id=\"foldopen00232\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\"> 232</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\">GeometryType</a> ()</div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> : dim_(0), none_(true), topologyId_(0)</div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00242\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\"> 242</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\">GeometryType</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>, <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>)</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> : dim_(<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>), none_(<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>), topologyId_(topologyId)</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00251\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\"> 251</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\">GeometryType</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>)</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> : dim_(<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>), none_(false), topologyId_(topologyId)</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class </span>TopologyType,</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">class </span>= std::void_t<<span class=\"keyword\">decltype</span>(TopologyType::dimension), <span class=\"keyword\">decltype</span>(TopologyType::id)>></div>\n-<div class=\"foldopen\" id=\"foldopen00267\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\"> 267</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\">GeometryType</a>(TopologyType t)</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> : dim_(TopologyType::dimension), none_(false), topologyId_(TopologyType::<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>)</div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> {</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> DUNE_UNUSED_PARAMETER(t);</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00279\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\"> 279</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">isVertex</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">return</span> dim_==0;</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00284\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\"> 284</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">isLine</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">return</span> dim_==1;</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\"> 232</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a>& y, Impl::GaussNewtonOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> {</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> x = refElement_.position(0,0);</div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> Impl::GaussNewtonErrorCode err = Impl::gaussNewton(</div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(local); },</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a>(local); },</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> y, x, opts</div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> );</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keywordflow\">if</span> (err != Impl::GaussNewtonErrorCode::OK)</div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> DUNE_THROW(Dune::Exception,</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"stringliteral\">"Local coordinate can not be recovered from global coordinate, error code = "</span> << <span class=\"keywordtype\">int</span>(err) << <span class=\"stringliteral\">"\\n"</span></div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> << <span class=\"stringliteral\">" (global(x) - y).two_norm() = "</span> << (<a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(x) - y).two_norm()</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> << <span class=\"stringliteral\">" > tol = "</span> << opts.absTol);</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keywordflow\">return</span> x;</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\"> 260</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> <a class=\"code hl_function\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">integrationElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keywordflow\">return</span> MatrixHelper::sqrtDetAAT(<a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>));</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00276\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\"> 276</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a> (Impl::ConvergenceOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> {</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol0 = <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>(), 1));</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">affine</a>())</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">return</span> vol0;</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> </div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keyword\">using </span>std::abs;</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> p = 2; p < opts.maxIt; ++p) {</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol1 = <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>(), p));</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">if</span> (abs(vol1 - vol0) < opts.absTol)</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordflow\">return</span> vol1;</div>\n <div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00289\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\"> 289</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\">isTriangle</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==2 && (topologyId_ | 1) == 0b0001;</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> }</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> vol0 = vol1;</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> }</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"keywordflow\">return</span> vol0;</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> }</div>\n </div>\n <div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> </div>\n <div class=\"foldopen\" id=\"foldopen00294\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\"> 294</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\">isQuadrilateral</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==2 && (topologyId_ | 1) == 0b0011;</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00299\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\"> 299</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\">isTetrahedron</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0001;</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00304\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\"> 304</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">isPyramid</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0011;</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00309\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\"> 309</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0101;</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\"> 294</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> <a class=\"code hl_function\" href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\">volume</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, mydimension></a>& quadRule)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol(0);</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">for</span> (<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& qp : quadRule)</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> vol += <a class=\"code hl_function\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">integrationElement</a>(qp.position()) * qp.weight();</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">return</span> vol;</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00307\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\"> 307</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> <a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">thread_local</span> std::vector<typename LocalBasisTraits::JacobianType> shapeJacobians;</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().evaluateJacobian(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>, shapeJacobians);</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> assert(shapeJacobians.size() == vertices_.size());</div>\n <div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00314\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\"> 314</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\">isHexahedron</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0111;</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\"> 319</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keywordflow\">return</span> ! none_ && (topologyId_ | 1) == 1;</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00324\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\"> 324</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">isCube</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">return</span> ! none_ && ((topologyId_ ^ ((1 << dim_)-1)) >> 1 == 0);</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00329\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\"> 329</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\">isConical</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keywordflow\">return</span> ! none_ && (((topologyId_ & ~1) & (1u << (dim_-1))) == 0);</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00337\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\"> 337</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\">isConical</a>(<span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span>& step)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> ! none_ && (((topologyId_ & ~1) & (1u << step)) == 0);</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00342\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\"> 342</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\">isPrismatic</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keywordflow\">return</span> ! none_ && (( (topologyId_ | 1) & (1u << (dim_-1))) != 0);</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> }</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> out(0);</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> <span class=\"keywordflow\">for</span> (std::size_t i = 0; i < shapeJacobians.size(); ++i) {</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> j = 0; j < Jacobian::rows; ++j) {</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> shapeJacobians[i].umtv(vertices_[i][j], out[j]);</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> }</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keywordflow\">return</span> out;</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00327\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\"> 327</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>).transposed();</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00339\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\"> 339</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">jacobianInverse</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> out;</div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> MatrixHelper::leftInvA(<a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>), out);</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keywordflow\">return</span> out;</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> }</div>\n </div>\n <div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00350\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\"> 350</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\">isPrismatic</a>(<span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span>& step)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">return</span> ! none_ && (( (topologyId_ | 1) & (1u << step)) != 0);</div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00355\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\"> 355</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keywordflow\">return</span> none_;</div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00360\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\"> 360</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> dim_;</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n+<div class=\"foldopen\" id=\"foldopen00353\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\"> 353</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\">jacobianInverseTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">jacobianInverse</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>).transposed();</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00359\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\"> 359</a></span> <span class=\"keyword\">friend</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\">referenceElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a>& geometry)</div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> {</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> geometry.refElement_;</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n </div>\n <div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n <div class=\"foldopen\" id=\"foldopen00365\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\"> 365</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keywordflow\">return</span> topologyId_;</div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> }</div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\"> 365</a></span> <span class=\"keyword\">const</span> LocalFiniteElement& <a class=\"code hl_function\" href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\">finiteElement</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keywordflow\">return</span> localFE_;</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00371\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\"> 371</a></span> <span class=\"keyword\">const</span> std::vector<GlobalCoordinate>& <a class=\"code hl_function\" href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\">coefficients</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keywordflow\">return</span> vertices_;</div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> }</div>\n </div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> </div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> </div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n <div class=\"foldopen\" id=\"foldopen00377\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\"> 377</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\">operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keywordflow\">return</span> ( ( none_ == other.none_ )</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> && ( ( none_ == <span class=\"keyword\">true</span> )</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> || ( ( dim_ == other.dim_ )</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> && ( (topologyId_ >> 1) == (other.topologyId_ >> 1) )</div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> )</div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> )</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> );</div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00388\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\"> 388</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\">operator!=</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keywordflow\">return</span> ! ((*this)==other);</div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00393\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\"> 393</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\">operator < </a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keywordflow\">return</span> ( ( none_ < other.none_ )</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> || ( !( other.none_ < none_ )</div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> && ( ( dim_ < other.dim_ )</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> || ( (other.dim_ == dim_)</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> && ((topologyId_ >> 1) < (other.topologyId_ >> 1) )</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> )</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> )</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> )</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> );</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> </div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00410\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\"> 410</a></span> <span class=\"keyword\">inline</span> std::ostream& <a class=\"code hl_function\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">operator<< </a>(std::ostream& s, <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& a)</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> {</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> {</div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> s << <span class=\"stringliteral\">"(simplex, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">isCube</a>())</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> {</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> s << <span class=\"stringliteral\">"(cube, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> }</div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">isPyramid</a>())</div>\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> {</div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> s << <span class=\"stringliteral\">"(pyramid, 3)"</span>;</div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> }</div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>())</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> {</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> s << <span class=\"stringliteral\">"(prism, 3)"</span>;</div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> }</div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>())</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> {</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> s << <span class=\"stringliteral\">"(none, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> }</div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> s << <span class=\"stringliteral\">"(other ["</span> << a.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() << <span class=\"stringliteral\">"], "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keywordflow\">return</span> s;</div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> </div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> </div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00447\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00275.html\"> 447</a></span> <span class=\"keyword\">namespace </span>GeometryTypes {</div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\"> 377</a></span> <span class=\"keyword\">const</span> LocalBasis& <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keywordflow\">return</span> localFE_.localBasis();</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> <span class=\"keywordtype\">bool</span> affineImpl ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> == 0)</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// point geometries are always affine mappings</span></div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keywordflow\">else</span> {</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">order</a>() > 1)</div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// higher-order parametrizations are by definition not affine</span></div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> == 1)</div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"comment\">// linear line geometries are affine mappings</span></div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keywordflow\">else</span> {</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>().<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"comment\">// linear simplex geometries are affine mappings</span></div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> </div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"comment\">// multi-linear mappings on non-simplex geometries might be affine</span></div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"comment\">// as well. This is tested explicitly for all vertices by constructing</span></div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> <span class=\"comment\">// an affine mapping from dim+1 affine-independent corners and evaluating</span></div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"comment\">// at the other corners.</span></div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <span class=\"keyword\">auto</span> refSimplex = referenceElement<ctype,mydimension>(GeometryTypes::simplex(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">auto</span> simplexIndices = Dune::range(refSimplex.size(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">auto</span> simplexCorners = Dune::transformedRangeView(simplexIndices,</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> [&](<span class=\"keywordtype\">int</span> i) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refSimplex.position(i,<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>)); });</div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> AffineGeometry<ctype,mydimension,coorddimension> affineGeo(refSimplex,simplexCorners);</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> tol = sqrt(std::numeric_limits<ctype>::epsilon());</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a>(); ++i) {</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"keyword\">const</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a> = refElement_.position(i,<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>);</div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keywordflow\">if</span> ((affineGeo.global(<a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a>) - <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(<a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a>)).two_norm() > tol)</div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> }</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> }</div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> }</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> </div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> refElement_{};</div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> </div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> LocalFiniteElement localFE_{};</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> </div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> std::vector<GlobalCoordinate> vertices_{};</div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> </div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keyword\">mutable</span> std::optional<bool> affine_ = std::nullopt;</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span>};</div>\n+</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> </div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span><span class=\"keyword\">namespace </span>Impl {</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> </div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span><span class=\"comment\">// extract the LocalCoordinate type from a LocalFiniteElement</span></div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE></div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span><span class=\"keyword\">using </span>LocalCoordinate_t</div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> = FieldVector<<span class=\"keyword\">typename</span> LFE::Traits::LocalBasisType::Traits::DomainFieldType,</div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> LFE::Traits::LocalBasisType::Traits::dimDomain>;</div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> </div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span>} <span class=\"comment\">// end namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> </div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> </div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span><span class=\"comment\">// deduction guides</span></div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> I, <span class=\"keyword\">class</span> LFE, <span class=\"keyword\">class</span> GlobalCoordinate></div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#ab8428045fd8606c48bb01ef84398c9b7\"> 448</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement<I></a>, <span class=\"keyword\">const</span> LFE&, std::vector<GlobalCoordinate>)</div>\n+<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, GlobalCoordinate::dimension></a>;</div>\n <div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> </div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> simplex(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> {</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,dim,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> }</div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> </div>\n+<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>I, <span class=\"keyword\">class </span>LFE, <span class=\"keyword\">class </span>F,</div>\n+<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>></div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a5c32fd93843a14930083653dee620ee1\"> 453</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement<I></a>, <span class=\"keyword\">const</span> LFE&, <span class=\"keyword\">const</span> F&)</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, Range::dimension></a>;</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> </div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE, <span class=\"keyword\">class</span> GlobalCoordinate></div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a6515706e91a0e4a2bab9cd783a23cbd6\"> 457</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>, <span class=\"keyword\">const</span> LFE& localFE, std::vector<GlobalCoordinate>)</div>\n+<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, GlobalCoordinate::dimension></a>;</div>\n <div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> </div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> cube(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> {</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(((dim>1) ? ((1 << dim) - 1) : 0),dim,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> }</div>\n+<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>LFE, <span class=\"keyword\">class </span>F,</div>\n+<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>></div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a800044360dc34fc6dc86a6f5aeefecfd\"> 462</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>, <span class=\"keyword\">const</span> LFE&, <span class=\"keyword\">const</span> F&)</div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, Range::dimension></a>;</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> </div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span>} <span class=\"comment\">// namespace Dune</span></div>\n <div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> </div>\n-<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> </div>\n-<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> none(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n-<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> {</div>\n-<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,dim,<span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> }</div>\n-<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> </div>\n-<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> conicalExtension(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt)</div>\n-<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n-<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()+1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n-<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> }</div>\n-<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> </div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> prismaticExtension(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt)</div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> {</div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() | ((1 << gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>())), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()+1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> }</div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> </div>\n-<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> </div>\n-<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"> 492</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> vertex = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,0,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> </div>\n-<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> </div>\n-<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> line = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,1,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> </div>\n-<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> </div>\n-<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> triangle = simplex(2);</div>\n-<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> </div>\n-<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> </div>\n-<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> quadrilateral = cube(2);</div>\n-<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> </div>\n-<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> </div>\n-<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> tetrahedron = simplex(3);</div>\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> </div>\n-<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> </div>\n-<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"> 522</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> pyramid = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0b0011,3,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> </div>\n-<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> </div>\n-<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> prism = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0b0101,3,<span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> </div>\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> </div>\n-<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> hexahedron = cube(3);</div>\n-<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> </div>\n-<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> </div>\n-<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keyword\">namespace </span>Impl</div>\n-<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> {</div>\n-<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> </div>\n-<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> getBase(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt) {</div>\n-<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"> 543</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() & ((1 << (gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()-1))-1), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()-1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n-<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"> 544</span> }</div>\n-<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> </div>\n-<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> </div>\n-<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span> <span class=\"comment\">// IfGeometryType</span></div>\n-<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> <span class=\"comment\">// ----------</span></div>\n-<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> </div>\n-<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">template</span>< GeometryType::Id > <span class=\"keyword\">class </span>Operation, <span class=\"keywordtype\">int</span> dim, <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">GeometryType::Id</a> geometryId = GeometryTypes::vertex ></div>\n-<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keyword\">struct </span>IfGeometryType</div>\n-<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> {</div>\n-<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> GeometryType geometry = geometryId;</div>\n-<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span>... Args ></div>\n-<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> apply ( GeometryType gt, Args &&... args )</div>\n-<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> {</div>\n-<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> GeometryType lowerGeometry(gt.id() >>1 , gt.dim()-1, gt.isNone());</div>\n-<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> </div>\n-<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keywordflow\">if</span>( gt.id() & 1 )</div>\n-<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> <span class=\"keywordflow\">return</span> IfGeometryType< Operation, dim-1, GeometryTypes::prismaticExtension(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );</div>\n-<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> <span class=\"keywordflow\">return</span> IfGeometryType< Operation, dim-1, GeometryTypes::conicalExtension(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );</div>\n-<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> }</div>\n-<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> };</div>\n-<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span> </div>\n-<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">template</span>< GeometryType::Id > <span class=\"keyword\">class </span>Operation, <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">GeometryType::Id</a> geometryId ></div>\n-<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> <span class=\"keyword\">struct </span>IfGeometryType< Operation, 0, geometryId></div>\n-<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> {</div>\n-<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span>... Args ></div>\n-<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> apply ([[maybe_unused]] GeometryType gt, Args &&... args )</div>\n-<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> {</div>\n-<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> <span class=\"keywordflow\">return</span> Operation< geometryId >::apply( std::forward< Args >( args )... );</div>\n-<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> }</div>\n-<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> };</div>\n-<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> } <span class=\"comment\">// namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> </div>\n-<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPE_HH</span></div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n+<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00188_html\"><div class=\"ttname\"><a href=\"a00188.html\">quadraturerules.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n+<div class=\"ttc\" id=\"aa00197_html\"><div class=\"ttname\"><a href=\"a00197.html\">convergence.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00203_html\"><div class=\"ttname\"><a href=\"a00203.html\">algorithms.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a925707539f34b98f2c6ea44b0a81b8c5\"><div class=\"ttname\"><a href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">Dune::operator<<</a></div><div class=\"ttdeci\">std::ostream & operator<<(std::ostream &s, const GeometryType &a)</div><div class=\"ttdoc\">Prints the type to an output stream.</div><div class=\"ttdef\"><b>Definition</b> type.hh:410</div></div>\n+<div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n+<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n+<div class=\"ttc\" id=\"aa01131_html\"><div class=\"ttname\"><a href=\"a01131.html\">Dune::LocalFiniteElementGeometry</a></div><div class=\"ttdoc\">Geometry implementation based on local-basis function parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:40</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a0d6c964e8e66dd589643d4ca77ccc880\"><div class=\"ttname\"><a href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">Dune::LocalFiniteElementGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Obtain the name of the reference element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:167</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a1452818fb76ca43b00ef4b52d6068c04\"><div class=\"ttname\"><a href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Dune::LocalFiniteElementGeometry::Volume</a></div><div class=\"ttdeci\">decltype(power(std::declval< ctype >(), mydimension)) Volume</div><div class=\"ttdoc\">type of volume</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:62</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a195b4b240336744aeb2a4d810155a0e6\"><div class=\"ttname\"><a href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">Dune::LocalFiniteElementGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Evaluate the inverse coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:232</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a1c6e57ef5a1e911b3590c9caab666177\"><div class=\"ttname\"><a href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(const ReferenceElement &refElement, const LocalFiniteElement &localFE, std::vector< GlobalCoordinate > vertices)</div><div class=\"ttdoc\">Constructor from a vector of coefficients of the LocalBasis parametrizing the geometry.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:103</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a22ecbc5995a6bc922ea2baed57049ace\"><div class=\"ttname\"><a href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">Dune::LocalFiniteElementGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:327</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a2ed1740a88091758438406e70a3d15c7\"><div class=\"ttname\"><a href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">Dune::LocalFiniteElementGeometry::localBasis</a></div><div class=\"ttdeci\">const LocalBasis & localBasis() const</div><div class=\"ttdoc\">The local basis of the stored local finite-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:377</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a2ed536b3dea28cdf3f2211691a87a158\"><div class=\"ttname\"><a href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">Dune::LocalFiniteElementGeometry::ctype</a></div><div class=\"ttdeci\">typename LocalBasisTraits::DomainFieldType ctype</div><div class=\"ttdoc\">coordinate type</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:47</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a42d9b7d4546e9494a27edf41a291b92f\"><div class=\"ttname\"><a href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\">Dune::LocalFiniteElementGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:353</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a43ca1b7d8477948f5a8dd1baa0f2fb70\"><div class=\"ttname\"><a href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\">Dune::LocalFiniteElementGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const LocalFiniteElementGeometry &geometry)</div><div class=\"ttdoc\">Obtain the reference-element related to this geometry.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:359</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a49afeed9ef68a8915f1bdf589dec6797\"><div class=\"ttname\"><a href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry()=default</div><div class=\"ttdoc\">Default constructed geometry results in an empty/invalid representation.</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a4fa88743dcf37d7d6ec36a06a9610de0\"><div class=\"ttname\"><a href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">Dune::LocalFiniteElementGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Is this mapping affine? Geometries of order 1 might be affine, but it needs to be checked on non-simp...</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:159</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a5186729ad43201005ce4b60c8a7276d0\"><div class=\"ttname\"><a href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">Dune::LocalFiniteElementGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:307</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a61bb78f1246992e619204e6b2e4a78cb\"><div class=\"ttname\"><a href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\">Dune::LocalFiniteElementGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image by given quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:294</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a653e7dc7eb6c544aa47a17df29111c2a\"><div class=\"ttname\"><a href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\">Dune::LocalFiniteElementGeometry::coefficients</a></div><div class=\"ttdeci\">const std::vector< GlobalCoordinate > & coefficients() const</div><div class=\"ttdoc\">Obtain the coefficients of the parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:371</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a6e73d3a9800d57c845888f1b50786916\"><div class=\"ttname\"><a href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(GeometryType gt, Args &&... args)</div><div class=\"ttdoc\">Constructor, forwarding to the other constructors that take a reference-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:144</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a7030c1ae5fd2ce82dac489aef2e13214\"><div class=\"ttname\"><a href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\">Dune::LocalFiniteElementGeometry::coorddimension</a></div><div class=\"ttdeci\">static const int coorddimension</div><div class=\"ttdoc\">coordinate dimension</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:53</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a7ba0c6f5acf2273b21b99fae79ad429e\"><div class=\"ttname\"><a href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">Dune::LocalFiniteElementGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:173</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a84ff848a2f4c7c42b95305a3015d0806\"><div class=\"ttname\"><a href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\">Dune::LocalFiniteElementGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Obtain the centroid of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:186</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a86055a273860a57cd1ff802ba6ce4632\"><div class=\"ttname\"><a href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\">Dune::LocalFiniteElementGeometry::finiteElement</a></div><div class=\"ttdeci\">const LocalFiniteElement & finiteElement() const</div><div class=\"ttdoc\">Obtain the local finite-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:365</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a87335d7ded5fd82adef1943b00767bbf\"><div class=\"ttname\"><a href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">Dune::LocalFiniteElementGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:202</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_a9039712eac25ab09a2182e1cc1eff04d\"><div class=\"ttname\"><a href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\">Dune::LocalFiniteElementGeometry::MatrixHelper</a></div><div class=\"ttdeci\">Impl::FieldMatrixHelper< ctype > MatrixHelper</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:82</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_aa18d4b1317b4c725ce4f89f8e320336b\"><div class=\"ttname\"><a href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">Dune::LocalFiniteElementGeometry::ReferenceElement</a></div><div class=\"ttdeci\">typename ReferenceElements::ReferenceElement ReferenceElement</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:79</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_ab2650b534a5c0a6243472b7cb9bb130e\"><div class=\"ttname\"><a href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">Dune::LocalFiniteElementGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:179</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_ab437f7bb8a187c4a49489efd507be953\"><div class=\"ttname\"><a href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">Dune::LocalFiniteElementGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:276</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_ab706d664eb4eafa52baa4fac612fef4e\"><div class=\"ttname\"><a href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">Dune::LocalFiniteElementGeometry::mydimension</a></div><div class=\"ttdeci\">static const int mydimension</div><div class=\"ttdoc\">geometry dimension</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:50</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_abc8f9a456a39d5f7960c0e34aef51738\"><div class=\"ttname\"><a href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">Dune::LocalFiniteElementGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:339</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_ac108da68d4c61953128ae9d72d3ce9f6\"><div class=\"ttname\"><a href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">Dune::LocalFiniteElementGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddimension > GlobalCoordinate</div><div class=\"ttdoc\">type of global coordinates</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:59</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_acd6120cb4570ea18fff3a20f7f3b596d\"><div class=\"ttname\"><a href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Dune::LocalFiniteElementGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">type of jacobian</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:65</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_ad1eff3719318d382fce6d6a64bbd8ffb\"><div class=\"ttname\"><a href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">Dune::LocalFiniteElementGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">type of jacobian inverse transposed</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:74</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_aebd585e88047806ab8129dfdf4e941de\"><div class=\"ttname\"><a href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">Dune::LocalFiniteElementGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">type of jacobian inverse</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:71</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_aec5c7b2b33a3c1c305b0b326be9de0d7\"><div class=\"ttname\"><a href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">Dune::LocalFiniteElementGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:260</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_af01c0e247ed64cf94f05d5c4092c3d99\"><div class=\"ttname\"><a href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">Dune::LocalFiniteElementGeometry::order</a></div><div class=\"ttdeci\">int order() const</div><div class=\"ttdoc\">Obtain the (highest) polynomial order of the parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:149</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_af8a137e7ca593617217e21fbc7909e28\"><div class=\"ttname\"><a href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">Dune::LocalFiniteElementGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, mydimension > LocalCoordinate</div><div class=\"ttdoc\">type of local coordinates</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:56</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_afd8df635d0a58849a74609a0d0e66baa\"><div class=\"ttname\"><a href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">Dune::LocalFiniteElementGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">type of jacobian transposed</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:68</div></div>\n+<div class=\"ttc\" id=\"aa01131_html_afe40e9e1bd6a32f3eaf221c3124325b1\"><div class=\"ttname\"><a href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(const ReferenceElement &refElement, const LocalFiniteElement &localFE, Param &&parametrization)</div><div class=\"ttdoc\">Constructor from a local parametrization function, mapping local to (curved) global coordinates.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:128</div></div>\n+<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n+<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a0a6121458c1b591743c17016e9f74805\"><div class=\"ttname\"><a href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(unsigned int topologyId, unsigned int dim)</div><div class=\"ttdoc\">Constructor, using the topologyId (integer) and the dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:251</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a0ad010a872711290661eff8d02cd8e2b\"><div class=\"ttname\"><a href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\">Dune::GeometryType::operator<</a></div><div class=\"ttdeci\">constexpr bool operator<(const GeometryType &other) const</div><div class=\"ttdoc\">less-than operation for use with maps</div><div class=\"ttdef\"><b>Definition</b> type.hh:393</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a182670272d26c1d272bbeb12695d4c43\"><div class=\"ttname\"><a href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\">Dune::GeometryType::operator!=</a></div><div class=\"ttdeci\">constexpr bool operator!=(const GeometryType &other) const</div><div class=\"ttdoc\">Check for inequality.</div><div class=\"ttdef\"><b>Definition</b> type.hh:388</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a250165622002c2e50ec3499b753e4412\"><div class=\"ttname\"><a href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">Dune::GeometryType::isPyramid</a></div><div class=\"ttdeci\">constexpr bool isPyramid() const</div><div class=\"ttdoc\">Return true if entity is a pyramid.</div><div class=\"ttdef\"><b>Definition</b> type.hh:304</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a3395c779d9223ca7d98a9e13d4d61e43\"><div class=\"ttname\"><a href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\">Dune::GeometryType::isTetrahedron</a></div><div class=\"ttdeci\">constexpr bool isTetrahedron() const</div><div class=\"ttdoc\">Return true if entity is a tetrahedron.</div><div class=\"ttdef\"><b>Definition</b> type.hh:299</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a348e00bac645649b4694a3b03a87b7d8\"><div class=\"ttname\"><a href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">Dune::GeometryType::isPrism</a></div><div class=\"ttdeci\">constexpr bool isPrism() const</div><div class=\"ttdoc\">Return true if entity is a prism.</div><div class=\"ttdef\"><b>Definition</b> type.hh:309</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a3529c9ae0ad0d9fa97c413bfda66851f\"><div class=\"ttname\"><a href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">Dune::GeometryType::isVertex</a></div><div class=\"ttdeci\">constexpr bool isVertex() const</div><div class=\"ttdoc\">Return true if entity is a vertex.</div><div class=\"ttdef\"><b>Definition</b> type.hh:279</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a38b36ecdb5b04c3652f1979b0bf4ed5c\"><div class=\"ttname\"><a href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\">Dune::GeometryType::operator==</a></div><div class=\"ttdeci\">constexpr bool operator==(const GeometryType &other) const</div><div class=\"ttdoc\">Check for equality. This method knows that in dimension 0 and 1 all BasicTypes are equal.</div><div class=\"ttdef\"><b>Definition</b> type.hh:377</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a4342859295e354389b20c6ab8d2092a2\"><div class=\"ttname\"><a href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">Dune::GeometryType::toId</a></div><div class=\"ttdeci\">constexpr Id toId() const</div><div class=\"ttdoc\">Create an Id representation of this GeometryType.</div><div class=\"ttdef\"><b>Definition</b> type.hh:210</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a4828ba864fc7f41632ed821d8adf268b\"><div class=\"ttname\"><a href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\">Dune::GeometryType::isConical</a></div><div class=\"ttdeci\">constexpr bool isConical(const int &step) const</div><div class=\"ttdoc\">Return true if entity was constructed with a conical product in the chosen step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:337</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a494c1901eb6e39ef60a806c12aac8fc1\"><div class=\"ttname\"><a href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\">Dune::GeometryType::isPrismatic</a></div><div class=\"ttdeci\">constexpr bool isPrismatic(const int &step) const</div><div class=\"ttdoc\">Return true if entity was constructed with a prismatic product in the chosen step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:350</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a4bd256c5de347ec02d3b7676564e0921\"><div class=\"ttname\"><a href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\">Dune::GeometryType::isTriangle</a></div><div class=\"ttdeci\">constexpr bool isTriangle() const</div><div class=\"ttdoc\">Return true if entity is a triangle.</div><div class=\"ttdef\"><b>Definition</b> type.hh:289</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a5827e50f4af5e42d632d2be548eef6fa\"><div class=\"ttname\"><a href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">GeometryType(TopologyType t)</div><div class=\"ttdoc\">Constructor from static TopologyType class.</div><div class=\"ttdef\"><b>Definition</b> type.hh:267</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a8df6ab7f7f3e87a75cbb1f3ad3528a14\"><div class=\"ttname\"><a href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(unsigned int topologyId, unsigned int dim, bool isNone)</div><div class=\"ttdoc\">Constructor, using the topologyId (integer), the dimension and a flag for type none.</div><div class=\"ttdef\"><b>Definition</b> type.hh:242</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">Dune::GeometryType::BasicType</a></div><div class=\"ttdeci\">BasicType</div><div class=\"ttdoc\">Each entity can be tagged by one of these basic types plus its space dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:120</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\">Dune::GeometryType::cube</a></div><div class=\"ttdeci\">@ cube</div><div class=\"ttdoc\">Cube element in any nonnegative dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:122</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\">Dune::GeometryType::simplex</a></div><div class=\"ttdeci\">@ simplex</div><div class=\"ttdoc\">Simplicial element in any nonnegative dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:121</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\">Dune::GeometryType::pyramid</a></div><div class=\"ttdeci\">@ pyramid</div><div class=\"ttdoc\">Four sided pyramid in three dimensions.</div><div class=\"ttdef\"><b>Definition</b> type.hh:123</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\">Dune::GeometryType::extended</a></div><div class=\"ttdeci\">@ extended</div><div class=\"ttdoc\">Other, more general topology, representable as topologyId.</div><div class=\"ttdef\"><b>Definition</b> type.hh:125</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\">Dune::GeometryType::none</a></div><div class=\"ttdeci\">@ none</div><div class=\"ttdoc\">Even more general topology, cannot be specified by a topologyId. Two GeometryTypes with 'none' type a...</div><div class=\"ttdef\"><b>Definition</b> type.hh:126</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\">Dune::GeometryType::prism</a></div><div class=\"ttdeci\">@ prism</div><div class=\"ttdoc\">Prism element in three dimensions.</div><div class=\"ttdef\"><b>Definition</b> type.hh:124</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a98fed1bc9a98365ffa6f8880b2ed6934\"><div class=\"ttname\"><a href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(Id id)</div><div class=\"ttdoc\">Reconstruct a Geometry type from a GeometryType::Id.</div><div class=\"ttdef\"><b>Definition</b> type.hh:222</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_aa27be83cac6455c2e050d066aceccdad\"><div class=\"ttname\"><a href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">Dune::GeometryType::isCube</a></div><div class=\"ttdeci\">constexpr bool isCube() const</div><div class=\"ttdoc\">Return true if entity is a cube of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:324</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_aa6a68dc876e73aa8c97fa42fd0481aa6\"><div class=\"ttname\"><a href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType()</div><div class=\"ttdoc\">Default constructor, not initializing anything.</div><div class=\"ttdef\"><b>Definition</b> type.hh:232</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_aabefa78f7cbdb781cf306deda9a48d4b\"><div class=\"ttname\"><a href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\">Dune::GeometryType::isConical</a></div><div class=\"ttdeci\">constexpr bool isConical() const</div><div class=\"ttdoc\">Return true if entity was constructed with a conical product in the last step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:329</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ab73476cf45a8608877ddba81c514d294\"><div class=\"ttname\"><a href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">Dune::GeometryType::isLine</a></div><div class=\"ttdeci\">constexpr bool isLine() const</div><div class=\"ttdoc\">Return true if entity is a line segment.</div><div class=\"ttdef\"><b>Definition</b> type.hh:284</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_abbfc8813bd601d8118fb18deeb8cd2d9\"><div class=\"ttname\"><a href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\">Dune::GeometryType::isQuadrilateral</a></div><div class=\"ttdeci\">constexpr bool isQuadrilateral() const</div><div class=\"ttdoc\">Return true if entity is a quadrilateral.</div><div class=\"ttdef\"><b>Definition</b> type.hh:294</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ac1f9782bcf273bab34671c862062f66b\"><div class=\"ttname\"><a href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\">Dune::GeometryType::isPrismatic</a></div><div class=\"ttdeci\">constexpr bool isPrismatic() const</div><div class=\"ttdoc\">Return true if entity was constructed with a prismatic product in the last step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:342</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ad3c775a48d36f776a487d1221963edba\"><div class=\"ttname\"><a href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">Dune::GeometryType::isNone</a></div><div class=\"ttdeci\">constexpr bool isNone() const</div><div class=\"ttdoc\">Return true if entity is a singular of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:355</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ae34ba85f0606201ef5156219b62196f5\"><div class=\"ttname\"><a href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\">Dune::GeometryType::isHexahedron</a></div><div class=\"ttdeci\">constexpr bool isHexahedron() const</div><div class=\"ttdoc\">Return true if entity is a hexahedron.</div><div class=\"ttdef\"><b>Definition</b> type.hh:314</div></div>\n <div class=\"ttc\" id=\"aa01367_html_af04ef531b52014e4e382722b54102163\"><div class=\"ttname\"><a href=\"a01367.html#af04ef531b52014e4e382722b54102163\">Dune::GeometryType::isSimplex</a></div><div class=\"ttdeci\">constexpr bool isSimplex() const</div><div class=\"ttdoc\">Return true if entity is a simplex of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:319</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_af65ff19e6d2915e0fd7db6c5329ae44e\"><div class=\"ttname\"><a href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">Dune::GeometryType::Id</a></div><div class=\"ttdeci\">IdType Id</div><div class=\"ttdoc\">An integral id representing a GeometryType.</div><div class=\"ttdef\"><b>Definition</b> type.hh:181</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,542 +1,531 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-type.hh\n+localfiniteelementgeometry.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_TYPE_HH\n-6#define DUNE_GEOMETRY_TYPE_HH\n+5#ifndef DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n+6#define DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n 7\n-12#include <cassert>\n-13#include <cstdint>\n-14\n-15#include <string>\n-16#include <type_traits>\n-17\n-18#include <dune/common/exceptions.hh>\n-19#include <dune/common/typetraits.hh>\n-20#include <dune/common/unused.hh>\n-21\n-22namespace _\bD_\bu_\bn_\be\n-23{\n-24\n-25 namespace Impl\n-26 {\n-27\n-28 enum TopologyConstruction { pyramidConstruction = 0, prismConstruction = 1\n-};\n-29\n-30 // Dynamic Topology Properties\n-31 // ---------------------------\n-32\n-41 inline static unsigned int numTopologies ( int dim ) noexcept\n-42 {\n-43 return (1u << dim);\n-44 }\n-45\n-57 inline bool static isPyramid ( unsigned int topologyId, int dim, int codim =\n-0 ) noexcept\n-58 {\n-59 assert( (dim > 0) && (topologyId < numTopologies( dim )) );\n-60 assert( (0 <= codim) && (codim < dim) );\n-61 return (((topologyId & ~1) & (1u << (dim-codim-1))) == 0);\n-62 }\n+8#include <cassert>\n+9#include <functional>\n+10#include <limits>\n+11#include <type_traits>\n+12#include <vector>\n+13\n+14#include <dune/common/fmatrix.hh>\n+15#include <dune/common/fvector.hh>\n+16#include <dune/common/math.hh>\n+17#include <dune/common/typetraits.hh>\n+18#include <dune/common/std/type_traits.hh>\n+19\n+20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n+21#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n+22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+24#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n+25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n+26\n+27namespace _\bD_\bu_\bn_\be {\n+28\n+38template <class LFE, int cdim>\n+_\b3_\b9class _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+40{\n+41 using LocalFiniteElement = LFE;\n+42 using LocalBasis = typename LFE::Traits::LocalBasisType;\n+43 using LocalBasisTraits = typename LocalBasis::Traits;\n+44\n+45public:\n+_\b4_\b7 using _\bc_\bt_\by_\bp_\be = typename LocalBasisTraits::DomainFieldType;\n+48\n+_\b5_\b0 static const int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = LocalBasisTraits::dimDomain;\n+51\n+_\b5_\b3 static const int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = cdim;\n+54\n+_\b5_\b6 using _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = FieldVector<ctype, mydimension>;\n+57\n+_\b5_\b9 using _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = FieldVector<ctype, coorddimension>;\n+60\n+_\b6_\b2 using _\bV_\bo_\bl_\bu_\bm_\be = decltype(power(std::declval<ctype>(),_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n 63\n-75 inline static bool isPrism ( unsigned int topologyId, int dim, int codim = 0\n-) noexcept\n-76 {\n-77 assert( (dim > 0) && (topologyId < numTopologies( dim )) );\n-78 assert( (0 <= codim) && (codim < dim) );\n-79 return (( (topologyId | 1) & (1u << (dim-codim-1))) != 0);\n-80 }\n-81\n-89 inline static unsigned int baseTopologyId ( unsigned int topologyId, int\n-dim, int codim = 1 ) noexcept\n-90 {\n-91 assert( (dim >= 0) && (topologyId < numTopologies( dim )) );\n-92 assert( (0 <= codim) && (codim <= dim) );\n-93 return topologyId & ((1u << (dim-codim)) - 1);\n-94 }\n-95\n-96 } // namespace Impl\n-97\n-98 // GeometryType\n-99 // -------------\n-100\n-_\b1_\b1_\b3 class _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-114 {\n-115 public:\n-116\n-_\b1_\b1_\b9 enum\n-120 _\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be {\n-_\b1_\b2_\b1 _\bs_\bi_\bm_\bp_\bl_\be_\bx,\n-_\b1_\b2_\b2 _\bc_\bu_\bb_\be,\n-_\b1_\b2_\b3 _\bp_\by_\br_\ba_\bm_\bi_\bd,\n-_\b1_\b2_\b4 _\bp_\br_\bi_\bs_\bm,\n-_\b1_\b2_\b5 _\be_\bx_\bt_\be_\bn_\bd_\be_\bd,\n-126 _\bn_\bo_\bn_\be\n-_\b1_\b2_\b7 };\n-128\n-129 private:\n-130\n-132 unsigned char dim_;\n-133\n-135 bool none_;\n+_\b6_\b5 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = FieldMatrix<ctype, coorddimension, mydimension>;\n+66\n+_\b6_\b8 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, mydimension, coorddimension>;\n+69\n+_\b7_\b1 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = FieldMatrix<ctype, mydimension, coorddimension>;\n+72\n+_\b7_\b4 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, coorddimension,\n+mydimension>;\n+75\n+76public:\n+_\b7_\b8 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs = _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n+_\b7_\b9 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt = typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n+80\n+81protected:\n+_\b8_\b2 using _\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br = Impl::FieldMatrixHelper<ctype>;\n+83\n+84public:\n+_\b8_\b6 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n+87\n+_\b1_\b0_\b3 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& refElement,\n+104 const LocalFiniteElement& localFE,\n+105 std::vector<GlobalCoordinate> vertices)\n+106 : refElement_(refElement)\n+107 , localFE_(localFE)\n+108 , vertices_(_\bs_\bt_\bd::move(vertices))\n+109 {\n+110 assert(localFE_.size() == vertices_.size());\n+111 }\n+112\n+126 template <class Param,\n+127 std::enable_if_t<std::\n+is_invocable_r_v<GlobalCoordinate,Param,LocalCoordinate>, int> = 0>\n+_\b1_\b2_\b8 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& refElement,\n+129 const LocalFiniteElement& localFE,\n+130 Param&& parametrization)\n+131 : refElement_(refElement)\n+132 , localFE_(localFE)\n+133 {\n+134 localFE_.localInterpolation().interpolate(parametrization, vertices_);\n+135 }\n 136\n-138 unsigned int topologyId_;\n-139\n-140 // Internal type used for the Id. The exact nature of this type is kept\n-141 // as an implementation detail on purpose. We use a scoped enum here\n-because scoped enums\n-142 // can be used as template parameters, but are not implicitly converted to\n-other integral\n-143 // types by the compiler. That way, we avoid unfortunate implicit\n-conversion chains, e.g.\n-144 // people trying to work with GlobalGeometryTypeIndex, but forgetting to\n-actually call\n-145 // GlobalGeometryTypeIndex::index(gt) and just using gt directly.\n-146 enum class IdType : std::uint64_t\n-147 {};\n-148\n-149 public:\n-150\n-_\b1_\b8_\b1 using Id = IdType;\n-182\n-_\b1_\b9_\b0 constexpr operator _\bI_\bd() const\n-191 {\n-192 // recreate the exact storage layout that this class is using, making\n-conversion\n-193 // extremely cheap\n-194 std::uint64_t id = dim_ | (std::uint64_t(none_) << 8) | (std::uint64_t\n-(topologyId_) << 32);\n-195 return static_cast<Id>(_\bi_\bd);\n-196 }\n-197\n-_\b2_\b1_\b0 constexpr Id _\bt_\bo_\bI_\bd() const\n-211 {\n-212 return static_cast<Id>(*this);\n+143 template <class... Args>\n+_\b1_\b4_\b4 explicit _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, Args&&... args)\n+145 : _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general(gt), _\bs_\bt_\bd::\n+forward<Args>(args)...)\n+146 {}\n+147\n+_\b1_\b4_\b9 int _\bo_\br_\bd_\be_\br () const\n+150 {\n+151 return _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().order();\n+152 }\n+153\n+_\b1_\b5_\b9 bool _\ba_\bf_\bf_\bi_\bn_\be () const\n+160 {\n+161 if (!affine_)\n+162 affine_.emplace(affineImpl());\n+163 return *affine_;\n+164 }\n+165\n+_\b1_\b6_\b7 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const\n+168 {\n+169 return refElement_.type();\n+170 }\n+171\n+_\b1_\b7_\b3 int _\bc_\bo_\br_\bn_\be_\br_\bs () const\n+174 {\n+175 return refElement_.size(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n+176 }\n+177\n+_\b1_\b7_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br (int i) const\n+180 {\n+181 assert( (i >= 0) && (i < _\bc_\bo_\br_\bn_\be_\br_\bs()) );\n+182 return _\bg_\bl_\bo_\bb_\ba_\bl(refElement_.position(i, _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n+183 }\n+184\n+_\b1_\b8_\b6 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const\n+187 {\n+188 return _\bg_\bl_\bo_\bb_\ba_\bl(refElement_.position(0, 0));\n+189 }\n+190\n+_\b2_\b0_\b2 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+203 {\n+204 thread_local std::vector<typename LocalBasisTraits::RangeType> shapeValues;\n+205 _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().evaluateFunction(_\bl_\bo_\bc_\ba_\bl, shapeValues);\n+206 assert(shapeValues.size() == vertices_.size());\n+207\n+208 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be out(0);\n+209 for (std::size_t i = 0; i < shapeValues.size(); ++i)\n+210 out.axpy(shapeValues[i], vertices_[i]);\n+211\n+212 return out;\n 213 }\n 214\n-_\b2_\b2_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(Id id)\n-223 : dim_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) & 0xFF)\n-224 , none_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) & 0x100)\n-225 , topologyId_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) >> 32)\n-226 {}\n-227\n-230\n-_\b2_\b3_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be ()\n-233 : dim_(0), none_(true), topologyId_(0)\n-234 {}\n-235\n-_\b2_\b4_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(unsigned int topologyId, unsigned int _\bd_\bi_\bm, bool\n-_\bi_\bs_\bN_\bo_\bn_\be)\n-243 : dim_(_\bd_\bi_\bm), none_(_\bi_\bs_\bN_\bo_\bn_\be), topologyId_(topologyId)\n-244 {}\n-245\n-_\b2_\b5_\b1 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(unsigned int topologyId, unsigned int _\bd_\bi_\bm)\n-252 : dim_(_\bd_\bi_\bm), none_(false), topologyId_(topologyId)\n-253 {}\n-254\n-265 template<class TopologyType,\n-266 class = std::void_t<decltype(TopologyType::dimension), decltype\n-(TopologyType::id)>>\n-_\b2_\b6_\b7 explicit _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(TopologyType t)\n-268 : dim_(TopologyType::dimension), none_(false), topologyId_(TopologyType::\n-_\bi_\bd)\n-269 {\n-270 DUNE_UNUSED_PARAMETER(t);\n-271 }\n-272\n-_\b2_\b7_\b9 constexpr bool _\bi_\bs_\bV_\be_\br_\bt_\be_\bx() const {\n-280 return dim_==0;\n-281 }\n-282\n-_\b2_\b8_\b4 constexpr bool _\bi_\bs_\bL_\bi_\bn_\be() const {\n-285 return dim_==1;\n-286 }\n+_\b2_\b3_\b2 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl (const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& y, Impl::\n+GaussNewtonOptions<ctype> opts = {}) const\n+233 {\n+234 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be x = refElement_.position(0,0);\n+235 Impl::GaussNewtonErrorCode err = Impl::gaussNewton(\n+236 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(local); },\n+237 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(local);\n+},\n+238 y, x, opts\n+239 );\n+240\n+241 if (err != Impl::GaussNewtonErrorCode::OK)\n+242 DUNE_THROW(Dune::Exception,\n+243 \"Local coordinate can not be recovered from global coordinate, error code =\n+\" << int(err) << \"\\n\"\n+244 << \" (global(x) - y).two_norm() = \" << (_\bg_\bl_\bo_\bb_\ba_\bl(x) - y).two_norm()\n+245 << \" > tol = \" << opts.absTol);\n+246\n+247 return x;\n+248 }\n+249\n+_\b2_\b6_\b0 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+261 {\n+262 return MatrixHelper::sqrtDetAAT(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl));\n+263 }\n+264\n+_\b2_\b7_\b6 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (Impl::ConvergenceOptions<ctype> opts = {}) const\n+277 {\n+278 _\bV_\bo_\bl_\bu_\bm_\be vol0 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), 1));\n+279 if (_\ba_\bf_\bf_\bi_\bn_\be())\n+280 return vol0;\n+281\n+282 using std::abs;\n+283 for (int p = 2; p < opts.maxIt; ++p) {\n+284 _\bV_\bo_\bl_\bu_\bm_\be vol1 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), p));\n+285 if (abs(vol1 - vol0) < opts.absTol)\n+286 return vol1;\n 287\n-_\b2_\b8_\b9 constexpr bool _\bi_\bs_\bT_\br_\bi_\ba_\bn_\bg_\bl_\be() const {\n-290 return ! none_ && dim_==2 && (topologyId_ | 1) == 0b0001;\n+288 vol0 = vol1;\n+289 }\n+290 return vol0;\n 291 }\n 292\n-_\b2_\b9_\b4 constexpr bool _\bi_\bs_\bQ_\bu_\ba_\bd_\br_\bi_\bl_\ba_\bt_\be_\br_\ba_\bl() const {\n-295 return ! none_ && dim_==2 && (topologyId_ | 1) == 0b0011;\n-296 }\n-297\n-_\b2_\b9_\b9 constexpr bool _\bi_\bs_\bT_\be_\bt_\br_\ba_\bh_\be_\bd_\br_\bo_\bn() const {\n-300 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0001;\n-301 }\n-302\n-_\b3_\b0_\b4 constexpr bool _\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd() const {\n-305 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0011;\n-306 }\n-307\n-_\b3_\b0_\b9 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm() const {\n-310 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0101;\n-311 }\n+_\b2_\b9_\b4 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>& quadRule) const\n+295 {\n+296 _\bV_\bo_\bl_\bu_\bm_\be vol(0);\n+297 for (const auto& qp : quadRule)\n+298 vol += _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt(qp.position()) * qp.weight();\n+299 return vol;\n+300 }\n+301\n+_\b3_\b0_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+308 {\n+309 thread_local std::vector<typename LocalBasisTraits::JacobianType>\n+shapeJacobians;\n+310 _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().evaluateJacobian(_\bl_\bo_\bc_\ba_\bl, shapeJacobians);\n+311 assert(shapeJacobians.size() == vertices_.size());\n 312\n-_\b3_\b1_\b4 constexpr bool _\bi_\bs_\bH_\be_\bx_\ba_\bh_\be_\bd_\br_\bo_\bn() const {\n-315 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0111;\n-316 }\n-317\n-_\b3_\b1_\b9 constexpr bool _\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx() const {\n-320 return ! none_ && (topologyId_ | 1) == 1;\n-321 }\n-322\n-_\b3_\b2_\b4 constexpr bool _\bi_\bs_\bC_\bu_\bb_\be() const {\n-325 return ! none_ && ((topologyId_ ^ ((1 << dim_)-1)) >> 1 == 0);\n-326 }\n-327\n-_\b3_\b2_\b9 constexpr bool _\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl() const {\n-330 return ! none_ && (((topologyId_ & ~1) & (1u << (dim_-1))) == 0);\n-331 }\n-332\n-_\b3_\b3_\b7 constexpr bool _\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl(const int& step) const {\n-338 return ! none_ && (((topologyId_ & ~1) & (1u << step)) == 0);\n-339 }\n-340\n-_\b3_\b4_\b2 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc() const {\n-343 return ! none_ && (( (topologyId_ | 1) & (1u << (dim_-1))) != 0);\n+313 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn out(0);\n+314 for (std::size_t i = 0; i < shapeJacobians.size(); ++i) {\n+315 for (int j = 0; j < Jacobian::rows; ++j) {\n+316 shapeJacobians[i].umtv(vertices_[i][j], out[j]);\n+317 }\n+318 }\n+319 return out;\n+320 }\n+321\n+_\b3_\b2_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+328 {\n+329 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl).transposed();\n+330 }\n+331\n+_\b3_\b3_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+340 {\n+341 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be out;\n+342 MatrixHelper::leftInvA(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl), out);\n+343 return out;\n 344 }\n 345\n-_\b3_\b5_\b0 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc(const int& step) const {\n-351 return ! none_ && (( (topologyId_ | 1) & (1u << step)) != 0);\n-352 }\n-353\n-_\b3_\b5_\b5 constexpr bool _\bi_\bs_\bN_\bo_\bn_\be() const {\n-356 return none_;\n-357 }\n-358\n-_\b3_\b6_\b0 constexpr unsigned int _\bd_\bi_\bm() const {\n-361 return dim_;\n+_\b3_\b5_\b3 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n+_\bl_\bo_\bc_\ba_\bl) const\n+354 {\n+355 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be(_\bl_\bo_\bc_\ba_\bl).transposed();\n+356 }\n+357\n+_\b3_\b5_\b9 friend _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by&\n+geometry)\n+360 {\n+361 return geometry.refElement_;\n 362 }\n 363\n-_\b3_\b6_\b5 constexpr unsigned int _\bi_\bd() const {\n-366 return topologyId_;\n-367 }\n-368\n-373\n-_\b3_\b7_\b7 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n-378 return ( ( none_ == other.none_ )\n-379 && ( ( none_ == true )\n-380 || ( ( dim_ == other.dim_ )\n-381 && ( (topologyId_ >> 1) == (other.topologyId_ >> 1) )\n-382 )\n-383 )\n-384 );\n-385 }\n-386\n-_\b3_\b8_\b8 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n-389 return ! ((*this)==other);\n-390 }\n-391\n-_\b3_\b9_\b3 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b _\b<_\b (const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n-394 return ( ( none_ < other.none_ )\n-395 || ( !( other.none_ < none_ )\n-396 && ( ( dim_ < other.dim_ )\n-397 || ( (other.dim_ == dim_)\n-398 && ((topologyId_ >> 1) < (other.topologyId_ >> 1) )\n-399 )\n-400 )\n-401 )\n-402 );\n-403 }\n-404\n-407 };\n-408\n-_\b4_\b1_\b0 inline std::ostream& _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<_\b (std::ostream& s, const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& a)\n-411 {\n-412 if (a._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n-413 {\n-414 s << \"(simplex, \" << a._\bd_\bi_\bm() << \")\";\n-415 return s;\n+_\b3_\b6_\b5 const LocalFiniteElement& _\bf_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt () const\n+366 {\n+367 return localFE_;\n+368 }\n+369\n+_\b3_\b7_\b1 const std::vector<GlobalCoordinate>& _\bc_\bo_\be_\bf_\bf_\bi_\bc_\bi_\be_\bn_\bt_\bs () const\n+372 {\n+373 return vertices_;\n+374 }\n+375\n+_\b3_\b7_\b7 const LocalBasis& _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs () const\n+378 {\n+379 return localFE_.localBasis();\n+380 }\n+381\n+382private:\n+383\n+384 bool affineImpl () const\n+385 {\n+386 if constexpr(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn == 0)\n+387 // point geometries are always affine mappings\n+388 return true;\n+389 else {\n+390 if (_\bo_\br_\bd_\be_\br() > 1)\n+391 // higher-order parametrizations are by definition not affine\n+392 return false;\n+393 if constexpr(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn == 1)\n+394 // linear line geometries are affine mappings\n+395 return true;\n+396 else {\n+397 if (_\bt_\by_\bp_\be()._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n+398 // linear simplex geometries are affine mappings\n+399 return true;\n+400\n+401 // multi-linear mappings on non-simplex geometries might be affine\n+402 // as well. This is tested explicitly for all vertices by constructing\n+403 // an affine mapping from dim+1 affine-independent corners and evaluating\n+404 // at the other corners.\n+405 auto refSimplex = referenceElement<ctype,mydimension>(GeometryTypes::\n+simplex(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n+406 auto simplexIndices = Dune::range(refSimplex.size(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n+407 auto simplexCorners = Dune::transformedRangeView(simplexIndices,\n+408 [&](int i) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(refSimplex.position(i,_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn)); });\n+409 AffineGeometry<ctype,mydimension,coorddimension> affineGeo\n+(refSimplex,simplexCorners);\n+410 using std::sqrt;\n+411 const _\bc_\bt_\by_\bp_\be tol = sqrt(std::numeric_limits<ctype>::epsilon());\n+412 for (int i = 0; i < _\bc_\bo_\br_\bn_\be_\br_\bs(); ++i) {\n+413 const auto _\bc_\bo_\br_\bn_\be_\br = refElement_.position(i,_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n+414 if ((affineGeo.global(_\bc_\bo_\br_\bn_\be_\br) - _\bg_\bl_\bo_\bb_\ba_\bl(_\bc_\bo_\br_\bn_\be_\br)).two_norm() > tol)\n+415 return false;\n 416 }\n-417 if (a._\bi_\bs_\bC_\bu_\bb_\be())\n-418 {\n-419 s << \"(cube, \" << a._\bd_\bi_\bm() << \")\";\n-420 return s;\n-421 }\n-422 if (a._\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd())\n-423 {\n-424 s << \"(pyramid, 3)\";\n-425 return s;\n-426 }\n-427 if (a._\bi_\bs_\bP_\br_\bi_\bs_\bm())\n-428 {\n-429 s << \"(prism, 3)\";\n-430 return s;\n-431 }\n-432 if (a._\bi_\bs_\bN_\bo_\bn_\be())\n-433 {\n-434 s << \"(none, \" << a._\bd_\bi_\bm() << \")\";\n-435 return s;\n-436 }\n-437 s << \"(other [\" << a._\bi_\bd() << \"], \" << a._\bd_\bi_\bm() << \")\";\n-438 return s;\n-439 }\n-440\n-441\n-443\n-_\b4_\b4_\b7 namespace GeometryTypes {\n-448\n+417 return true;\n+418 }\n+419 }\n+420 }\n+421\n+422private:\n+424 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt refElement_{};\n+425\n+427 LocalFiniteElement localFE_{};\n+428\n+430 std::vector<GlobalCoordinate> vertices_{};\n+431\n+432 mutable std::optional<bool> affine_ = std::nullopt;\n+433};\n+434\n+435namespace Impl {\n+436\n+437// extract the LocalCoordinate type from a LocalFiniteElement\n+438template <class LFE>\n+439using LocalCoordinate_t\n+440 = FieldVector<typename LFE::Traits::LocalBasisType::Traits::\n+DomainFieldType,\n+441 LFE::Traits::LocalBasisType::Traits::dimDomain>;\n+442\n+443} // end namespace Impl\n+444\n+445\n+446// deduction guides\n+447template <class I, class LFE, class GlobalCoordinate>\n+_\b4_\b4_\b8_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\bI_\b>, const LFE&, std::\n+vector<GlobalCoordinate>)\n+449 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n 450\n-453 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be simplex(unsigned int dim)\n-454 {\n-455 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,dim,false);\n-456 }\n-457\n+451template <class I, class LFE, class F,\n+452 class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n+_\b4_\b5_\b3_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\bI_\b>, const LFE&, const F&)\n+454 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bR_\ba_\bn_\bg_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n+455\n+456template <class LFE, class GlobalCoordinate>\n+_\b4_\b5_\b7_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE& localFE, std::\n+vector<GlobalCoordinate>)\n+458 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n 459\n-462 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be cube(unsigned int dim)\n-463 {\n-464 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(((dim>1) ? ((1 << dim) - 1) : 0),dim,false);\n-465 }\n+460template <class LFE, class F,\n+461 class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n+_\b4_\b6_\b2_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE&, const F&)\n+463 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bR_\ba_\bn_\bg_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n+464\n+465} // namespace Dune\n 466\n-468\n-471 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be none(unsigned int dim)\n-472 {\n-473 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,dim,true);\n-474 }\n-475\n-477 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be conicalExtension(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt)\n-478 {\n-479 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd(), gt._\bd_\bi_\bm()+1, gt._\bi_\bs_\bN_\bo_\bn_\be());\n-480 }\n-481\n-483 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be prismaticExtension(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt)\n-484 {\n-485 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd() | ((1 << gt._\bd_\bi_\bm())), gt._\bd_\bi_\bm()+1, gt._\bi_\bs_\bN_\bo_\bn_\be());\n-486 }\n-487\n-489\n-492 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be vertex = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,0,false);\n-493\n-495\n-498 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be line = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,1,false);\n-499\n-501\n-504 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be triangle = simplex(2);\n-505\n-507\n-510 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be quadrilateral = cube(2);\n-511\n-513\n-516 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be tetrahedron = simplex(3);\n-517\n-519\n-522 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be pyramid = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0b0011,3,false);\n-523\n-525\n-528 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be prism = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0b0101,3,false);\n-529\n-531\n-534 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be hexahedron = cube(3);\n-535\n-536 }\n-537\n-538 namespace Impl\n-539 {\n-540\n-542 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be getBase(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt) {\n-543 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd() & ((1 << (gt._\bd_\bi_\bm()-1))-1), gt._\bd_\bi_\bm()-1,\n-gt._\bi_\bs_\bN_\bo_\bn_\be());\n-544 }\n-545\n-546\n-547 // IfGeometryType\n-548 // ----------\n-549\n-550 template< template< GeometryType::Id > class Operation, int dim,\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd geometryId = GeometryTypes::vertex >\n-551 struct IfGeometryType\n-552 {\n-553 static constexpr GeometryType geometry = geometryId;\n-554 template< class... Args >\n-555 static auto apply ( GeometryType gt, Args &&... args )\n-556 {\n-557 GeometryType lowerGeometry(gt.id() >>1 , gt.dim()-1, gt.isNone());\n-558\n-559 if( gt.id() & 1 )\n-560 return IfGeometryType< Operation, dim-1, GeometryTypes::prismaticExtension\n-(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );\n-561 else\n-562 return IfGeometryType< Operation, dim-1, GeometryTypes::conicalExtension\n-(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );\n-563 }\n-564 };\n-565\n-566 template< template< GeometryType::Id > class Operation, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd\n-geometryId >\n-567 struct IfGeometryType< Operation, 0, geometryId>\n-568 {\n-569 template< class... Args >\n-570 static auto apply ([[maybe_unused]] GeometryType gt, Args &&... args )\n-571 {\n-572 return Operation< geometryId >::apply( std::forward< Args >( args )... );\n-573 }\n-574 };\n-575 } // namespace Impl\n-576} // namespace Dune\n-577\n-578#endif // DUNE_GEOMETRY_TYPE_HH\n+467#endif // DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n+_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh\n+_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n+An implementation of the Geometry interface for affine geometries.\n+_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh\n+_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh\n+_\bt_\by_\bp_\be_\b._\bh_\bh\n+A unique label for each type of element that can occur in a grid.\n _\bs_\bt_\bd\n STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<\n-std::ostream & operator<<(std::ostream &s, const GeometryType &a)\n-Prints the type to an output stream.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:410\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+This class provides access to geometric and topological properties of a\n+reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:52\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+Class providing access to the singletons of the reference elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename Container::ReferenceElement ReferenceElement\n+The reference element type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Geometry implementation based on local-basis function parametrization.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:40\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type() const\n+Obtain the name of the reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:167\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n+decltype(power(std::declval< ctype >(), mydimension)) Volume\n+type of volume\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:62\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n+LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions<\n+ctype > opts={}) const\n+Evaluate the inverse coordinate mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:232\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+LocalFiniteElementGeometry(const ReferenceElement &refElement, const\n+LocalFiniteElement &localFE, std::vector< GlobalCoordinate > vertices)\n+Constructor from a vector of coefficients of the LocalBasis parametrizing the\n+geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:103\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n+Obtain the transposed of the Jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:327\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs\n+const LocalBasis & localBasis() const\n+The local basis of the stored local finite-element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:377\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n+typename LocalBasisTraits::DomainFieldType ctype\n+coordinate type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:47\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n+&local) const\n+Obtain the transposed of the Jacobian's inverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:353\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+friend ReferenceElement referenceElement(const LocalFiniteElementGeometry\n+&geometry)\n+Obtain the reference-element related to this geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:359\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+LocalFiniteElementGeometry()=default\n+Default constructed geometry results in an empty/invalid representation.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n+bool affine() const\n+Is this mapping affine? Geometries of order 1 might be affine, but it needs to\n+be checked on non-simp...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:159\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+Jacobian jacobian(const LocalCoordinate &local) const\n+Obtain the Jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:307\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const\n+Obtain the volume of the mapping's image by given quadrature rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:294\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\be_\bf_\bf_\bi_\bc_\bi_\be_\bn_\bt_\bs\n+const std::vector< GlobalCoordinate > & coefficients() const\n+Obtain the coefficients of the parametrization.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:371\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+LocalFiniteElementGeometry(GeometryType gt, Args &&... args)\n+Constructor, forwarding to the other constructors that take a reference-\n+element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:144\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const int coorddimension\n+coordinate dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:53\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n+int corners() const\n+Obtain number of corners of the corresponding reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:173\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n+GlobalCoordinate center() const\n+Obtain the centroid of the mapping's image.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:186\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bf_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+const LocalFiniteElement & finiteElement() const\n+Obtain the local finite-element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:365\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n+GlobalCoordinate global(const LocalCoordinate &local) const\n+Evaluate the coordinate mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:202\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br\n+Impl::FieldMatrixHelper< ctype > MatrixHelper\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:82\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename ReferenceElements::ReferenceElement ReferenceElement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:79\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n+GlobalCoordinate corner(int i) const\n+Obtain coordinates of the i-th corner.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:179\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const\n+Obtain the volume of the mapping's image.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:276\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const int mydimension\n+geometry dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n+Obtain the Jacobian's inverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:339\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, coorddimension > GlobalCoordinate\n+type of global coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:59\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n+type of jacobian\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:65\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed\n+type of jacobian inverse transposed\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:74\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n+type of jacobian inverse\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:71\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n+ctype integrationElement(const LocalCoordinate &local) const\n+Obtain the integration element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:260\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bo_\br_\bd_\be_\br\n+int order() const\n+Obtain the (highest) polynomial order of the parametrization.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:149\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, mydimension > LocalCoordinate\n+type of local coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:56\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed\n+type of jacobian transposed\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:68\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+LocalFiniteElementGeometry(const ReferenceElement &refElement, const\n+LocalFiniteElement &localFE, Param &¶metrization)\n+Constructor from a local parametrization function, mapping local to (curved)\n+global coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:128\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+Abstract base class for quadrature rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n+A container for all quadrature rules of dimension dim\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-constexpr GeometryType(unsigned int topologyId, unsigned int dim)\n-Constructor, using the topologyId (integer) and the dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:251\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<\n-constexpr bool operator<(const GeometryType &other) const\n-less-than operation for use with maps\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:393\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=\n-constexpr bool operator!=(const GeometryType &other) const\n-Check for inequality.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:388\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd\n-constexpr bool isPyramid() const\n-Return true if entity is a pyramid.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:304\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bT_\be_\bt_\br_\ba_\bh_\be_\bd_\br_\bo_\bn\n-constexpr bool isTetrahedron() const\n-Return true if entity is a tetrahedron.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:299\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm\n-constexpr bool isPrism() const\n-Return true if entity is a prism.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:309\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bV_\be_\br_\bt_\be_\bx\n-constexpr bool isVertex() const\n-Return true if entity is a vertex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:279\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n-constexpr bool operator==(const GeometryType &other) const\n-Check for equality. This method knows that in dimension 0 and 1 all BasicTypes\n-are equal.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:377\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bt_\bo_\bI_\bd\n-constexpr Id toId() const\n-Create an Id representation of this GeometryType.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:210\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl\n-constexpr bool isConical(const int &step) const\n-Return true if entity was constructed with a conical product in the chosen\n-step.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:337\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n-constexpr unsigned int dim() const\n-Return dimension of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc\n-constexpr bool isPrismatic(const int &step) const\n-Return true if entity was constructed with a prismatic product in the chosen\n-step.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:350\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bT_\br_\bi_\ba_\bn_\bg_\bl_\be\n-constexpr bool isTriangle() const\n-Return true if entity is a triangle.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:289\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-GeometryType(TopologyType t)\n-Constructor from static TopologyType class.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:267\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-constexpr GeometryType(unsigned int topologyId, unsigned int dim, bool isNone)\n-Constructor, using the topologyId (integer), the dimension and a flag for type\n-none.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:242\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be\n-BasicType\n-Each entity can be tagged by one of these basic types plus its space dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:120\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be\n-@ cube\n-Cube element in any nonnegative dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:122\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx\n-@ simplex\n-Simplicial element in any nonnegative dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:121\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\by_\br_\ba_\bm_\bi_\bd\n-@ pyramid\n-Four sided pyramid in three dimensions.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:123\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\be_\bx_\bt_\be_\bn_\bd_\be_\bd\n-@ extended\n-Other, more general topology, representable as topologyId.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:125\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bn_\bo_\bn_\be\n-@ none\n-Even more general topology, cannot be specified by a topologyId. Two\n-GeometryTypes with 'none' type a...\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:126\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\br_\bi_\bs_\bm\n-@ prism\n-Prism element in three dimensions.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:124\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-constexpr GeometryType(Id id)\n-Reconstruct a Geometry type from a GeometryType::Id.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:222\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bu_\bb_\be\n-constexpr bool isCube() const\n-Return true if entity is a cube of any dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:324\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-constexpr GeometryType()\n-Default constructor, not initializing anything.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:232\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl\n-constexpr bool isConical() const\n-Return true if entity was constructed with a conical product in the last step.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:329\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bL_\bi_\bn_\be\n-constexpr bool isLine() const\n-Return true if entity is a line segment.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:284\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bQ_\bu_\ba_\bd_\br_\bi_\bl_\ba_\bt_\be_\br_\ba_\bl\n-constexpr bool isQuadrilateral() const\n-Return true if entity is a quadrilateral.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:294\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc\n-constexpr bool isPrismatic() const\n-Return true if entity was constructed with a prismatic product in the last\n-step.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:342\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n-constexpr unsigned int id() const\n-Return the topology id of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bN_\bo_\bn_\be\n-constexpr bool isNone() const\n-Return true if entity is a singular of any dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:355\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bH_\be_\bx_\ba_\bh_\be_\bd_\br_\bo_\bn\n-constexpr bool isHexahedron() const\n-Return true if entity is a hexahedron.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:314\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx\n constexpr bool isSimplex() const\n Return true if entity is a simplex of any dimension.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:319\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd\n-IdType Id\n-An integral id representing a GeometryType.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:181\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00176.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00176.html", "unified_diff": "@@ -75,20 +75,20 @@\n <div class=\"header\">\n <div class=\"headertitle\"><div class=\"title\">refinement.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>This file simply includes all <a class=\"el\" href=\"a00260.html\">Refinement</a> implementations so you don't have to do them separately. \n <a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include "<a class=\"el\" href=\"a00206_source.html\">refinement/base.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00209_source.html\">refinement/hcube.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00200_source.html\">refinement/simplex.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00194_source.html\">refinement/hcubetriangulation.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00203_source.html\">refinement/prismtriangulation.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00197_source.html\">refinement/pyramidtriangulation.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include "<a class=\"el\" href=\"a00236_source.html\">refinement/base.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00242_source.html\">refinement/hcube.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00233_source.html\">refinement/simplex.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00248_source.html\">refinement/hcubetriangulation.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00245_source.html\">refinement/prismtriangulation.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00239_source.html\">refinement/pyramidtriangulation.cc</a>"</code><br />\n </div>\n <p><a href=\"a00176_source.html\">Go to the source code of this file.</a></p>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n <div class=\"textblock\"><p>This file simply includes all <a class=\"el\" href=\"a00260.html\">Refinement</a> implementations so you don't have to do them separately. </p>\n </div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00176_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00176_source.html", "unified_diff": "@@ -87,29 +87,29 @@\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n <div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_HH</span></div>\n <div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n <div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span><span class=\"comment\">// The interface (template<...> class StaticRefinement) is not included here</span></div>\n <div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span><span class=\"comment\">// since it derives from parts which I consider implementation. Look</span></div>\n <div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span><span class=\"comment\">// into refinement/base.cc if the documentation is above is not enough.</span></div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">refinement/base.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00236.html\">refinement/base.cc</a>"</span></div>\n <div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00209.html\">refinement/hcube.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00200.html\">refinement/simplex.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00194.html\">refinement/hcubetriangulation.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00203.html\">refinement/prismtriangulation.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00197.html\">refinement/pyramidtriangulation.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00242.html\">refinement/hcube.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00233.html\">refinement/simplex.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00248.html\">refinement/hcubetriangulation.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00245.html\">refinement/prismtriangulation.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00239.html\">refinement/pyramidtriangulation.cc</a>"</span></div>\n <div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> </div>\n <div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_HH</span></div>\n-<div class=\"ttc\" id=\"aa00194_html\"><div class=\"ttname\"><a href=\"a00194.html\">hcubetriangulation.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for triangulating hypercubes (quadrilateral -> trian...</div></div>\n-<div class=\"ttc\" id=\"aa00197_html\"><div class=\"ttname\"><a href=\"a00197.html\">pyramidtriangulation.cc</a></div></div>\n-<div class=\"ttc\" id=\"aa00200_html\"><div class=\"ttname\"><a href=\"a00200.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n-<div class=\"ttc\" id=\"aa00203_html\"><div class=\"ttname\"><a href=\"a00203.html\">prismtriangulation.cc</a></div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00209_html\"><div class=\"ttname\"><a href=\"a00209.html\">hcube.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for hypercubes (quadrilaterals, hexahedrons,...</div></div>\n+<div class=\"ttc\" id=\"aa00233_html\"><div class=\"ttname\"><a href=\"a00233.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n+<div class=\"ttc\" id=\"aa00236_html\"><div class=\"ttname\"><a href=\"a00236.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n+<div class=\"ttc\" id=\"aa00239_html\"><div class=\"ttname\"><a href=\"a00239.html\">pyramidtriangulation.cc</a></div></div>\n+<div class=\"ttc\" id=\"aa00242_html\"><div class=\"ttname\"><a href=\"a00242.html\">hcube.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for hypercubes (quadrilaterals, hexahedrons,...</div></div>\n+<div class=\"ttc\" id=\"aa00245_html\"><div class=\"ttname\"><a href=\"a00245.html\">prismtriangulation.cc</a></div></div>\n+<div class=\"ttc\" id=\"aa00248_html\"><div class=\"ttname\"><a href=\"a00248.html\">hcubetriangulation.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for triangulating hypercubes (quadrilateral -> trian...</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -22,23 +22,23 @@\n 244#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b/_\bh_\bc_\bu_\bb_\be_\b._\bc_\bc\"\n 245#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b/_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n 246#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b/_\bh_\bc_\bu_\bb_\be_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\"\n 247#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b/_\bp_\br_\bi_\bs_\bm_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\"\n 248#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b/_\bp_\by_\br_\ba_\bm_\bi_\bd_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\"\n 249\n 250#endif // DUNE_GEOMETRY_REFINEMENT_HH\n-_\bh_\bc_\bu_\bb_\be_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n-This file contains the Refinement implementation for triangulating hypercubes\n-(quadrilateral -> trian...\n-_\bp_\by_\br_\ba_\bm_\bi_\bd_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n _\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n This file contains the Refinement implementation for simplices (triangles,\n tetrahedrons....\n-_\bp_\br_\bi_\bs_\bm_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n _\bb_\ba_\bs_\be_\b._\bc_\bc\n This file contains the parts independent of a particular Refinement\n implementation.\n+_\bp_\by_\br_\ba_\bm_\bi_\bd_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n _\bh_\bc_\bu_\bb_\be_\b._\bc_\bc\n This file contains the Refinement implementation for hypercubes\n (quadrilaterals, hexahedrons,...\n+_\bp_\br_\bi_\bs_\bm_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n+_\bh_\bc_\bu_\bb_\be_\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b._\bc_\bc\n+This file contains the Refinement implementation for triangulating hypercubes\n+(quadrilateral -> trian...\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00179.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00179.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: generalvertexorder.hh File Reference</title>\n+<title>dune-geometry: topologyfactory.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -71,50 +71,42 @@\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">generalvertexorder.hh File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">topologyfactory.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <algorithm></code><br />\n-<code>#include <cassert></code><br />\n-<code>#include <cstddef></code><br />\n-<code>#include <iterator></code><br />\n+<div class=\"textblock\"><code>#include <cassert></code><br />\n+<code>#include <array></code><br />\n+<code>#include <map></code><br />\n+<code>#include <memory></code><br />\n+<code>#include <type_traits></code><br />\n <code>#include <vector></code><br />\n-<code>#include <dune/common/iteratorfacades.hh></code><br />\n-<code>#include "<a class=\"el\" href=\"a00173_source.html\">type.hh</a>"</code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00221_source.html\">dune/geometry/typeindex.hh</a>></code><br />\n </div>\n <p><a href=\"a00179_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01123.html\">Dune::GeneralVertexOrder< dim, Index_ ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Class providing information on the ordering of vertices. <a href=\"a01123.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01355.html\">Dune::TopologyFactory< Traits ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Provide a factory over the generic topologies. <a href=\"a01355.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01127.html\">Dune::GeneralVertexOrder< dim, Index_ >::iterator</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Iterate over the vertex indices of some sub-entity. <a href=\"a01127.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01359.html\">Dune::TopologySingletonFactory< Factory ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A wrapper for a <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> providing singleton storage. Same usage as <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> but with empty release method an internal storage. <a href=\"a01359.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n-Functions</h2></td></tr>\n-<tr class=\"memitem:a77eece3229d82b929dcf4cde0cb2a855\" id=\"r_a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memTemplParams\" colspan=\"2\">template<class InIterator , class OutIterator > </td></tr>\n-<tr class=\"memitem:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">void </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">Dune::reduceOrder</a> (const InIterator &inBegin, const InIterator &inEnd, OutIterator outIt)</td></tr>\n-<tr class=\"memdesc:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Algorithm to reduce vertex order information. <br /></td></tr>\n-<tr class=\"separator:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,35 +1,31 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-generalvertexorder.hh File Reference\n-#include <algorithm>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+topologyfactory.hh File Reference\n #include <cassert>\n-#include <cstddef>\n-#include <iterator>\n+#include <array>\n+#include <map>\n+#include <memory>\n+#include <type_traits>\n #include <vector>\n-#include <dune/common/iteratorfacades.hh>\n-#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\b,_\b _\bI_\bn_\bd_\be_\bx_\b__\b _\b>\n-\u00a0 Class providing information on the ordering of vertices. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bT_\br_\ba_\bi_\bt_\bs_\b _\b>\n+\u00a0 Provide a factory over the generic topologies. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\b,_\b _\bI_\bn_\bd_\be_\bx_\b__\b _\b>_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n-\u00a0 Iterate over the vertex indices of some sub-entity. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bF_\ba_\bc_\bt_\bo_\br_\by_\b _\b>\n+ A wrapper for a _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by providing singleton storage. Same\n+\u00a0 usage as _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by but with empty release method an internal\n+ storage. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<class InIterator , class OutIterator >\n-void\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br (const InIterator &inBegin, const InIterator &inEnd,\n- OutIterator outIt)\n-\u00a0 Algorithm to reduce vertex order information.\n-\u00a0\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00179_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00179_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: generalvertexorder.hh Source File</title>\n+<title>dune-geometry: topologyfactory.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,187 +74,194 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">generalvertexorder.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">topologyfactory.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00179.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <algorithm></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <cstddef></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <iterator></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <vector></span></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00173.html\">type.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <array></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <map></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <memory></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00221.html\">dune/geometry/typeindex.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span>{</div>\n <div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> InIterator, <span class=\"keyword\">class</span> OutIterator></div>\n-<div class=\"foldopen\" id=\"foldopen00040\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\"> 40</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(<span class=\"keyword\">const</span> InIterator& inBegin, <span class=\"keyword\">const</span> InIterator& inEnd,</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> OutIterator outIt)</div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Traits></div>\n+<div class=\"foldopen\" id=\"foldopen00041\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html\"> 41</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01355.html\">TopologyFactory</a></div>\n <div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">for</span>(InIterator inIt = inBegin; inIt != inEnd; ++inIt, ++outIt)</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> *outIt = std::count_if(inBegin, inEnd, [&](<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& v)</div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> {</div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"keywordflow\">return</span> v < *inIt;</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> });</div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> </div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> dim, <span class=\"keyword\">class</span> Index_ = std::<span class=\"keywordtype\">size_t</span>></div>\n-<div class=\"foldopen\" id=\"foldopen00067\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html\"> 67</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> {</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements<double, dim></a> RefElems;</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">RefElems::ReferenceElement</a> RefElem;</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> RefElem refelem;</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt;</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> std::vector<Index_> vertexOrder;</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"comment\">// extract types from Traits class</span></div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\"> 44</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\">dimension</a> = Traits::dimension;</div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\"> 45</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Key <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a>;</div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\"> 46</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Object <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a>;</div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\"> 47</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Factory <a class=\"code hl_typedef\" href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\">Factory</a>;</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00050\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\"> 50</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> {</div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keywordflow\">return</span> Impl::toGeometryTypeIdConstant<dimension>(gt, [&](<span class=\"keyword\">auto</span> <span class=\"keywordtype\">id</span>) {</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keywordflow\">return</span> create<decltype(id)::value>(key);</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> });</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n+<div class=\"foldopen\" id=\"foldopen00058\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\"> 58</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> {</div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> <span class=\"keywordflow\">return</span> Factory::template createObject< geometryId >( key );</div>\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> </div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n+<div class=\"foldopen\" id=\"foldopen00065\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\"> 65</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> {</div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keywordflow\">return</span> Factory::template createObject< Topology >( key );</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\"> 71</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\">release</a>( <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<span class=\"keywordtype\">object</span> ) { <span class=\"keyword\">delete</span> object; }</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n <div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\"> 77</a></span> <span class=\"keyword\">typedef</span> Index_ <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a>;</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01127.html\">iterator</a>;</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\"> 83</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t <a class=\"code hl_variable\" href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\">dimension</a> = dim;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\"> 85</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &<a class=\"code hl_function\" href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\">type</a>()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> gt; }</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Factory></div>\n+<div class=\"foldopen\" id=\"foldopen00081\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html\"> 81</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01359.html\">TopologySingletonFactory</a></div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> {</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\"> 83</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a> = Factory::dimension;</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\"> 84</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Factory::Key <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a>;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> Factory::Object <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a>;</div>\n <div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> InIterator></div>\n-<div class=\"foldopen\" id=\"foldopen00097\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\"> 97</a></span> <a class=\"code hl_function\" href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\">GeneralVertexOrder</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt_, <span class=\"keyword\">const</span> InIterator &inBegin,</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">const</span> InIterator &inEnd) :</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> refelem(RefElems::general(gt_)), gt(gt_),</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> vertexOrder(refelem.size(dim))</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> { <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(inBegin, inEnd, vertexOrder.begin()); }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\"> 108</a></span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> <a class=\"code hl_function\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">begin</a>(std::size_t codim, std::size_t subEntity)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(*<span class=\"keyword\">this</span>, codim, subEntity); }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00115\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\"> 115</a></span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> <a class=\"code hl_function\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">end</a>(std::size_t codim, std::size_t subEntity)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(*<span class=\"keyword\">this</span>, codim, subEntity,</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> refelem.size(subEntity, codim, dim));</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00128\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\"> 128</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\">getReduced</a>(std::size_t codim, std::size_t subEntity,</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> std::vector<Index>& order)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> order.resize(refelem.size(subEntity, codim, dim));</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(<a class=\"code hl_function\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">begin</a>(codim, subEntity), <a class=\"code hl_function\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">end</a>(codim, subEntity),</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> order.begin());</div>\n+<div class=\"foldopen\" id=\"foldopen00088\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\"> 88</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *<a class=\"code hl_function\" href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> {</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> assert( gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() < numTopologies );</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">return</span> instance().getObject( gt, key );</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n+<div class=\"foldopen\" id=\"foldopen00095\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\"> 95</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> -> std::enable_if_t< static_cast<GeometryType>(geometryId).dim() == <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a>, <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> * ></div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> {</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keywordflow\">return</span> instance().template getObject< geometryId >( key );</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n+<div class=\"foldopen\" id=\"foldopen00103\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\"> 103</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> -> std::enable_if_t< Topology::dimension == dimension, Object * ></div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> {</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keywordflow\">return</span> instance().template getObject< Topology >( key );</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00110\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\"> 110</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\">release</a> ( <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *<span class=\"keywordtype\">object</span> )</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">struct </span>ObjectDeleter</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> {</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordtype\">void</span> operator() ( <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *ptr )<span class=\"keyword\"> const </span>{ Factory::release( ptr ); }</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> };</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keyword\">static</span> TopologySingletonFactory &instance ()</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> {</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> <span class=\"keyword\">static</span> TopologySingletonFactory instance;</div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keywordflow\">return</span> instance;</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> }</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> </div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numTopologies = (1 << <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a>);</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">typedef</span> std::array< std::unique_ptr< Object, ObjectDeleter >, numTopologies > Array;</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">typedef</span> std::map< Key, Array > Storage;</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> TopologySingletonFactory () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> std::unique_ptr< Object, ObjectDeleter > &find ( <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> {</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> <span class=\"keywordflow\">return</span> storage_[ key ][ topologyId ];</div>\n <div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> </div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> </div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> dim, <span class=\"keyword\">class</span> Index_></div>\n-<div class=\"foldopen\" id=\"foldopen00142\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html\"> 142</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a><dim, Index_>::<a class=\"code hl_class\" href=\"a01127.html\">iterator</a> :</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">public</span> Dune::RandomAccessIteratorFacade<iterator, const Index_></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> {</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> *order;</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> std::size_t codim;</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> std::size_t subEntity;</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> std::size_t vertex;</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> </div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> &order_, std::size_t codim_,</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> std::size_t subEntity_, std::size_t vertex_ = 0) :</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> order(&order_), codim(codim_), subEntity(subEntity_), vertex(vertex_)</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> { }</div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> </div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"foldopen\" id=\"foldopen00156\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\"> 156</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a> &<a class=\"code hl_function\" href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\">dereference</a>()<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keywordflow\">return</span> order->vertexOrder[order->refelem.subEntity(subEntity, codim,</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> vertex, dim)];</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n-</div>\n-<div class=\"foldopen\" id=\"foldopen00160\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\"> 160</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a> &<a class=\"code hl_function\" href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\">elementAt</a>(std::ptrdiff_t n)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">return</span> order->vertexOrder[order->refelem.subEntity(subEntity, codim,</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> vertex+n, dim)];</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> }</div>\n-</div>\n-<div class=\"foldopen\" id=\"foldopen00164\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a8995708c86363d7910d63d302c149c81\"> 164</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01127.html#a8995708c86363d7910d63d302c149c81\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> &other)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keywordflow\">return</span> order == other.order && codim == other.codim &&</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> subEntity == other.subEntity && vertex == other.vertex;</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\"> 168</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\">increment</a>() { ++vertex; }</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\"> 169</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\">decrement</a>() { --vertex; }</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\"> 170</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\">advance</a>(std::ptrdiff_t n) { vertex += n; }</div>\n-<div class=\"foldopen\" id=\"foldopen00171\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\"> 171</a></span> std::ptrdiff_t <a class=\"code hl_function\" href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\">distanceTo</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> &other)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"comment\">// make sure we reference the same container</span></div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> assert(order == other.order && codim == other.codim &&</div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> subEntity == other.subEntity);</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">if</span>(vertex < other.vertex) <span class=\"keywordflow\">return</span> other.vertex - vertex;</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">return</span> -<span class=\"keyword\">static_cast<</span>std::ptrdiff_t<span class=\"keyword\">></span>(vertex - other.vertex);</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> </div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a><dim, <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a>>;</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> </div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> </div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\"> 187</a></span> <a class=\"code hl_function\" href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\">iterator</a>() { }</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> </div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> </div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {</div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), key );</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordtype\">object</span>.reset( Factory::create( gt, key ) );</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> }</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> </div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> {</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> GeometryType geometry = geometryId;</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( geometry.id(), key );</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keywordtype\">object</span>.reset( Factory::template create< geometry >( key ) );</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> {</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( Topology::id, key );</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"keywordtype\">object</span>.reset( Factory::template create< Topology >( key ) );</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> }</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> </div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> Storage storage_;</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> </div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span>}</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> </div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n+<div class=\"ttc\" id=\"aa00221_html\"><div class=\"ttname\"><a href=\"a00221.html\">typeindex.hh</a></div><div class=\"ttdoc\">Helper classes to provide indices for geometrytypes for use in a vector.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a77eece3229d82b929dcf4cde0cb2a855\"><div class=\"ttname\"><a href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">Dune::reduceOrder</a></div><div class=\"ttdeci\">void reduceOrder(const InIterator &inBegin, const InIterator &inEnd, OutIterator outIt)</div><div class=\"ttdoc\">Algorithm to reduce vertex order information.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:40</div></div>\n-<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n-<div class=\"ttc\" id=\"aa01123_html\"><div class=\"ttname\"><a href=\"a01123.html\">Dune::GeneralVertexOrder</a></div><div class=\"ttdoc\">Class providing information on the ordering of vertices.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:67</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_a37cdb00963877c2fbd6ef18d5efe3333\"><div class=\"ttname\"><a href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Dune::GeneralVertexOrder::Index</a></div><div class=\"ttdeci\">Index_ Index</div><div class=\"ttdoc\">Type of indices.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:77</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_a52aa8e91a1272680078ef6a73d87d5b5\"><div class=\"ttname\"><a href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\">Dune::GeneralVertexOrder::type</a></div><div class=\"ttdeci\">const GeometryType & type() const</div><div class=\"ttdoc\">get type of the entity's geometry</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:85</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_a76f768e33ef7af8fb63453a12012e02a\"><div class=\"ttname\"><a href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\">Dune::GeneralVertexOrder::dimension</a></div><div class=\"ttdeci\">static const std::size_t dimension</div><div class=\"ttdoc\">export the dimension of the entity we provide information for</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:83</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_a9fd82b86554d2e4a771c40e7d9781c4e\"><div class=\"ttname\"><a href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\">Dune::GeneralVertexOrder::getReduced</a></div><div class=\"ttdeci\">void getReduced(std::size_t codim, std::size_t subEntity, std::vector< Index > &order) const</div><div class=\"ttdoc\">get a vector of reduced indices for some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_aa2f9423f99bc9fc1b66681b283adf5d5\"><div class=\"ttname\"><a href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">Dune::GeneralVertexOrder::end</a></div><div class=\"ttdeci\">iterator end(std::size_t codim, std::size_t subEntity) const</div><div class=\"ttdoc\">get end iterator for the vertex indices of some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:115</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_aa8d5da76dbcd833b08918abf14f6d978\"><div class=\"ttname\"><a href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\">Dune::GeneralVertexOrder::GeneralVertexOrder</a></div><div class=\"ttdeci\">GeneralVertexOrder(const GeometryType &gt_, const InIterator &inBegin, const InIterator &inEnd)</div><div class=\"ttdoc\">construct a GeneralVertexOrder</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:97</div></div>\n-<div class=\"ttc\" id=\"aa01123_html_ae9961aea26ae53ab84ed8d56080c66e7\"><div class=\"ttname\"><a href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">Dune::GeneralVertexOrder::begin</a></div><div class=\"ttdeci\">iterator begin(std::size_t codim, std::size_t subEntity) const</div><div class=\"ttdoc\">get begin iterator for the vertex indices of some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:108</div></div>\n-<div class=\"ttc\" id=\"aa01127_html\"><div class=\"ttname\"><a href=\"a01127.html\">Dune::GeneralVertexOrder::iterator</a></div><div class=\"ttdoc\">Iterate over the vertex indices of some sub-entity.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:144</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a03c5f3af410876f62021cfe607ed3538\"><div class=\"ttname\"><a href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\">Dune::GeneralVertexOrder::iterator::iterator</a></div><div class=\"ttdeci\">iterator()</div><div class=\"ttdoc\">public default constructor</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:187</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a1648ceeff8c1cd658368e6eefa036d71\"><div class=\"ttname\"><a href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\">Dune::GeneralVertexOrder::iterator::decrement</a></div><div class=\"ttdeci\">void decrement()</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:169</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a4390a963792da58ad1dacecbea3dca4a\"><div class=\"ttname\"><a href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\">Dune::GeneralVertexOrder::iterator::advance</a></div><div class=\"ttdeci\">void advance(std::ptrdiff_t n)</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:170</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a4a2bc50c217c74894e6a898f07eedbf9\"><div class=\"ttname\"><a href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\">Dune::GeneralVertexOrder::iterator::dereference</a></div><div class=\"ttdeci\">const Index & dereference() const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:156</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a5550e17d9e9df3c196912e9de402a0a5\"><div class=\"ttname\"><a href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\">Dune::GeneralVertexOrder::iterator::increment</a></div><div class=\"ttdeci\">void increment()</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:168</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_a8995708c86363d7910d63d302c149c81\"><div class=\"ttname\"><a href=\"a01127.html#a8995708c86363d7910d63d302c149c81\">Dune::GeneralVertexOrder::iterator::equals</a></div><div class=\"ttdeci\">bool equals(const iterator &other) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:164</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_ab0ec9f46a6c62bb40784605fc04d3ae9\"><div class=\"ttname\"><a href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\">Dune::GeneralVertexOrder::iterator::distanceTo</a></div><div class=\"ttdeci\">std::ptrdiff_t distanceTo(const iterator &other) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:171</div></div>\n-<div class=\"ttc\" id=\"aa01127_html_ad422a25e54c101ff0990a7dc0d3dabdc\"><div class=\"ttname\"><a href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\">Dune::GeneralVertexOrder::iterator::elementAt</a></div><div class=\"ttdeci\">const Index & elementAt(std::ptrdiff_t n) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:160</div></div>\n+<div class=\"ttc\" id=\"aa01355_html\"><div class=\"ttname\"><a href=\"a01355.html\">Dune::TopologyFactory</a></div><div class=\"ttdoc\">Provide a factory over the generic topologies.</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:42</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_a441ea227eca6e6ce76ecca5679d4c825\"><div class=\"ttname\"><a href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\">Dune::TopologyFactory::Factory</a></div><div class=\"ttdeci\">Traits::Factory Factory</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:47</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_a58349d7deb73100e59f0f5117472e4e0\"><div class=\"ttname\"><a href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\">Dune::TopologyFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Dune::GeometryType &gt, const Key &key)</div><div class=\"ttdoc\">dynamically create objects</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:50</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_a66ec306b5835b847f350fed4d9cac575\"><div class=\"ttname\"><a href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\">Dune::TopologyFactory::dimension</a></div><div class=\"ttdeci\">static const unsigned int dimension</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:44</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_a83748c7363fab70ef46deec7f7f6e9a8\"><div class=\"ttname\"><a href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">Dune::TopologyFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Key &key)</div><div class=\"ttdoc\">statically create objects</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:58</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_a997f0bce257dbb952974507385bfc7c8\"><div class=\"ttname\"><a href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\">Dune::TopologyFactory::release</a></div><div class=\"ttdeci\">static void release(Object *object)</div><div class=\"ttdoc\">release the object returned by the create methods</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:71</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_aa4fd3e0e671225cd8a7851ebed201f2a\"><div class=\"ttname\"><a href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Dune::TopologyFactory::Key</a></div><div class=\"ttdeci\">Traits::Key Key</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:45</div></div>\n+<div class=\"ttc\" id=\"aa01355_html_af8e95b31a464841f84839db4d7613136\"><div class=\"ttname\"><a href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Dune::TopologyFactory::Object</a></div><div class=\"ttdeci\">Traits::Object Object</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:46</div></div>\n+<div class=\"ttc\" id=\"aa01359_html\"><div class=\"ttname\"><a href=\"a01359.html\">Dune::TopologySingletonFactory</a></div><div class=\"ttdoc\">A wrapper for a TopologyFactory providing singleton storage. Same usage as TopologyFactory but with e...</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:82</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_a17368598beb2629fe349bd21cac861a1\"><div class=\"ttname\"><a href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static auto create(const Key &key) -> std::enable_if_t< Topology::dimension==dimension, Object * ></div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:103</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_a6709498e455988a544ef5b760849cf0f\"><div class=\"ttname\"><a href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Dune::GeometryType &gt, const Key &key)</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:88</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_a6b29c04375e6ac312f35b3fd2960c5de\"><div class=\"ttname\"><a href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\">Dune::TopologySingletonFactory::release</a></div><div class=\"ttdeci\">static void release(Object *object)</div><div class=\"ttdoc\">release the object returned by the create methods</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:110</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_aaeca2707ab5e5c86e2b478493db495d8\"><div class=\"ttname\"><a href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Dune::TopologySingletonFactory::Object</a></div><div class=\"ttdeci\">const Factory::Object Object</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:85</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_aafa55fd9a319b566b070649b57b9565f\"><div class=\"ttname\"><a href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Dune::TopologySingletonFactory::Key</a></div><div class=\"ttdeci\">Factory::Key Key</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:84</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_ad03f221d70a250c913da78991db87cc0\"><div class=\"ttname\"><a href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static auto create(const Key &key) -> std::enable_if_t< static_cast< GeometryType >(geometryId).dim()==dimension, Object * ></div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:95</div></div>\n+<div class=\"ttc\" id=\"aa01359_html_aeb61e596d0a5e5f4f6e917bf33438c6d\"><div class=\"ttname\"><a href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">Dune::TopologySingletonFactory::dimension</a></div><div class=\"ttdeci\">static const unsigned int dimension</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:83</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,216 +1,220 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-generalvertexorder.hh\n+topologyfactory.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5\n-6#ifndef DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n-7#define DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n-8\n-9#include <algorithm>\n-10#include <cassert>\n-11#include <cstddef>\n-12#include <iterator>\n-13#include <vector>\n-14\n-15#include <dune/common/iteratorfacades.hh>\n-16\n-17#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-19\n-20namespace _\bD_\bu_\bn_\be {\n+5#ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n+6#define DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n+7\n+8#include <cassert>\n+9\n+10#include <array>\n+11#include <map>\n+12#include <memory>\n+13#include <type_traits>\n+14#include <vector>\n+15\n+16#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+17#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n+18\n+19namespace _\bD_\bu_\bn_\be\n+20{\n 21\n-39 template<class InIterator, class OutIterator>\n-_\b4_\b0 void _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(const InIterator& inBegin, const InIterator& inEnd,\n-41 OutIterator outIt)\n+40 template <class Traits>\n+_\b4_\b1 struct _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by\n 42 {\n-43 for(InIterator inIt = inBegin; inIt != inEnd; ++inIt, ++outIt)\n-44 *outIt = std::count_if(inBegin, inEnd, [&](const auto& v)\n-45 {\n-46 return v < *inIt;\n-47 });\n-48 }\n-49\n-51\n-66 template<std::size_t dim, class Index_ = std::size_t>\n-_\b6_\b7 class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br {\n-68 typedef _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bd_\bo_\bu_\bb_\bl_\be_\b,_\b _\bd_\bi_\bm_\b> RefElems;\n-69 typedef typename _\bR_\be_\bf_\bE_\bl_\be_\bm_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt RefElem;\n-70\n-71 RefElem refelem;\n-72 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt;\n-73 std::vector<Index_> vertexOrder;\n+43 // extract types from Traits class\n+_\b4_\b4 static const unsigned int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = Traits::dimension;\n+_\b4_\b5 typedef typename Traits::Key _\bK_\be_\by;\n+_\b4_\b6 typedef typename Traits::Object _\bO_\bb_\bj_\be_\bc_\bt;\n+_\b4_\b7 typedef typename Traits::Factory _\bF_\ba_\bc_\bt_\bo_\br_\by;\n+48\n+_\b5_\b0 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n+51 {\n+52 return Impl::toGeometryTypeIdConstant<dimension>(gt, [&](auto id) {\n+53 return create<decltype(id)::value>(key);\n+54 });\n+55 }\n+57 template< GeometryType::Id geometryId >\n+_\b5_\b8 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n+59 {\n+60 return Factory::template createObject< geometryId >( key );\n+61 }\n+62\n+64 template< class Topology >\n+_\b6_\b5 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n+66 {\n+67 return Factory::template createObject< Topology >( key );\n+68 }\n+69\n+_\b7_\b1 static void _\br_\be_\bl_\be_\ba_\bs_\be( _\bO_\bb_\bj_\be_\bc_\bt *object ) { delete object; }\n+72 };\n+73\n 74\n-75 public:\n-_\b7_\b7 typedef Index_ _\bI_\bn_\bd_\be_\bx;\n-78\n-80 class _\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n-81\n-_\b8_\b3 static const std::size_t _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n-_\b8_\b5 const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &_\bt_\by_\bp_\be() const { return gt; }\n+75\n+80 template <class Factory>\n+_\b8_\b1 struct _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by\n+82 {\n+_\b8_\b3 static const unsigned int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = Factory::dimension;\n+_\b8_\b4 typedef typename Factory::Key _\bK_\be_\by;\n+_\b8_\b5 typedef const typename Factory::Object _\bO_\bb_\bj_\be_\bc_\bt;\n 86\n-88\n-96 template<class InIterator>\n-_\b9_\b7 _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt_, const InIterator &inBegin,\n-98 const InIterator &inEnd) :\n-99 refelem(RefElems::general(gt_)), gt(gt_),\n-100 vertexOrder(refelem.size(dim))\n-101 { _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(inBegin, inEnd, vertexOrder.begin()); }\n-102\n-104\n-_\b1_\b0_\b8 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\be_\bg_\bi_\bn(std::size_t codim, std::size_t subEntity) const\n-109 { return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, codim, subEntity); }\n-111\n-_\b1_\b1_\b5 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bn_\bd(std::size_t codim, std::size_t subEntity) const {\n-116 return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, codim, subEntity,\n-117 refelem.size(subEntity, codim, dim));\n-118 }\n-119\n-121\n-_\b1_\b2_\b8 void _\bg_\be_\bt_\bR_\be_\bd_\bu_\bc_\be_\bd(std::size_t codim, std::size_t subEntity,\n-129 std::vector<Index>& order) const\n-130 {\n-131 order.resize(refelem.size(subEntity, codim, dim));\n-132 _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(_\bb_\be_\bg_\bi_\bn(codim, subEntity), _\be_\bn_\bd(codim, subEntity),\n-133 order.begin());\n+_\b8_\b8 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n+89 {\n+90 assert( gt._\bi_\bd() < numTopologies );\n+91 return instance().getObject( gt, key );\n+92 }\n+94 template< GeometryType::Id geometryId >\n+_\b9_\b5 static auto _\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n+96 -> std::enable_if_t< static_cast<GeometryType>(geometryId).dim() ==\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, _\bO_\bb_\bj_\be_\bc_\bt * >\n+97 {\n+98 return instance().template getObject< geometryId >( key );\n+99 }\n+100\n+102 template< class Topology >\n+_\b1_\b0_\b3 static auto _\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n+104 -> std::enable_if_t< Topology::dimension == dimension, Object * >\n+105 {\n+106 return instance().template getObject< Topology >( key );\n+107 }\n+108\n+_\b1_\b1_\b0 static void _\br_\be_\bl_\be_\ba_\bs_\be ( _\bO_\bb_\bj_\be_\bc_\bt *object )\n+111 {}\n+112\n+113 private:\n+114 struct ObjectDeleter\n+115 {\n+116 void operator() ( _\bO_\bb_\bj_\be_\bc_\bt *ptr ) const { Factory::release( ptr ); }\n+117 };\n+118\n+119 static TopologySingletonFactory &instance ()\n+120 {\n+121 static TopologySingletonFactory instance;\n+122 return instance;\n+123 }\n+124\n+125 static const unsigned int numTopologies = (1 << _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n+126 typedef std::array< std::unique_ptr< Object, ObjectDeleter >, numTopologies\n+> Array;\n+127 typedef std::map< Key, Array > Storage;\n+128\n+129 TopologySingletonFactory () = default;\n+130\n+131 std::unique_ptr< Object, ObjectDeleter > &find ( const unsigned int\n+topologyId, const _\bK_\be_\by &key )\n+132 {\n+133 return storage_[ key ][ topologyId ];\n 134 }\n-135 };\n-136\n-138\n-141 template<std::size_t dim, class Index_>\n-_\b1_\b4_\b2 class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br<dim, Index_>::_\bi_\bt_\be_\br_\ba_\bt_\bo_\br :\n-143 public Dune::RandomAccessIteratorFacade<iterator, const Index_>\n-144 {\n-145 const _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br *order;\n-146 std::size_t codim;\n-147 std::size_t subEntity;\n-148 std::size_t vertex;\n-149\n-150 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(const _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br &order_, std::size_t codim_,\n-151 std::size_t subEntity_, std::size_t vertex_ = 0) :\n-152 order(&order_), codim(codim_), subEntity(subEntity_), vertex(vertex_)\n-153 { }\n-154\n-155 public:\n-_\b1_\b5_\b6 const _\bI_\bn_\bd_\be_\bx &_\bd_\be_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be() const {\n-157 return order->vertexOrder[order->refelem.subEntity(subEntity, codim,\n-158 vertex, dim)];\n-159 }\n-_\b1_\b6_\b0 const _\bI_\bn_\bd_\be_\bx &_\be_\bl_\be_\bm_\be_\bn_\bt_\bA_\bt(std::ptrdiff_t n) const {\n-161 return order->vertexOrder[order->refelem.subEntity(subEntity, codim,\n-162 vertex+n, dim)];\n-163 }\n-_\b1_\b6_\b4 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bi_\bt_\be_\br_\ba_\bt_\bo_\br &other) const {\n-165 return order == other.order && codim == other.codim &&\n-166 subEntity == other.subEntity && vertex == other.vertex;\n-167 }\n-_\b1_\b6_\b8 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt() { ++vertex; }\n-_\b1_\b6_\b9 void _\bd_\be_\bc_\br_\be_\bm_\be_\bn_\bt() { --vertex; }\n-_\b1_\b7_\b0 void _\ba_\bd_\bv_\ba_\bn_\bc_\be(std::ptrdiff_t n) { vertex += n; }\n-_\b1_\b7_\b1 std::ptrdiff_t _\bd_\bi_\bs_\bt_\ba_\bn_\bc_\be_\bT_\bo(const _\bi_\bt_\be_\br_\ba_\bt_\bo_\br &other) const {\n-172 // make sure we reference the same container\n-173 assert(order == other.order && codim == other.codim &&\n-174 subEntity == other.subEntity);\n-175 if(vertex < other.vertex) return other.vertex - vertex;\n-176 else return -static_cast<std::ptrdiff_t>(vertex - other.vertex);\n-177 }\n-178\n-179 friend class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br<dim, _\bI_\bn_\bd_\be_\bx>;\n-180\n-182\n-_\b1_\b8_\b7 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br() { }\n-188 };\n-189} // namespace Dune\n-190\n-191#endif // DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n+135\n+136 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n+137 {\n+138 auto &object = find( gt._\bi_\bd(), key );\n+139 if( !object )\n+140 object.reset( Factory::create( gt, key ) );\n+141 return object.get();\n+142 }\n+143\n+144 template< GeometryType::Id geometryId >\n+145 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bK_\be_\by &key )\n+146 {\n+147 static constexpr GeometryType geometry = geometryId;\n+148 auto &object = find( geometry.id(), key );\n+149 if( !object )\n+150 object.reset( Factory::template create< geometry >( key ) );\n+151 return object.get();\n+152 }\n+153\n+154 template< class Topology >\n+155 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bK_\be_\by &key )\n+156 {\n+157 auto &object = find( Topology::id, key );\n+158 if( !object )\n+159 object.reset( Factory::template create< Topology >( key ) );\n+160 return object.get();\n+161 }\n+162\n+163 Storage storage_;\n+164 };\n+165\n+166}\n+167\n+168#endif // #ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n+_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh\n+Helper classes to provide indices for geometrytypes for use in a vector.\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br\n-void reduceOrder(const InIterator &inBegin, const InIterator &inEnd,\n-OutIterator outIt)\n-Algorithm to reduce vertex order information.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:40\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-Class providing access to the singletons of the reference elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename Container::ReferenceElement ReferenceElement\n-The reference element type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br\n-Class providing information on the ordering of vertices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:67\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bI_\bn_\bd_\be_\bx\n-Index_ Index\n-Type of indices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bt_\by_\bp_\be\n-const GeometryType & type() const\n-get type of the entity's geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:85\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const std::size_t dimension\n-export the dimension of the entity we provide information for\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:83\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bg_\be_\bt_\bR_\be_\bd_\bu_\bc_\be_\bd\n-void getReduced(std::size_t codim, std::size_t subEntity, std::vector< Index >\n-&order) const\n-get a vector of reduced indices for some sub-entity\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\be_\bn_\bd\n-iterator end(std::size_t codim, std::size_t subEntity) const\n-get end iterator for the vertex indices of some sub-entity\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:115\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br\n-GeneralVertexOrder(const GeometryType >_, const InIterator &inBegin, const\n-InIterator &inEnd)\n-construct a GeneralVertexOrder\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:97\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bb_\be_\bg_\bi_\bn\n-iterator begin(std::size_t codim, std::size_t subEntity) const\n-get begin iterator for the vertex indices of some sub-entity\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n-Iterate over the vertex indices of some sub-entity.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:144\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n-iterator()\n-public default constructor\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:187\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\bc_\br_\be_\bm_\be_\bn_\bt\n-void decrement()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:169\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\ba_\bd_\bv_\ba_\bn_\bc_\be\n-void advance(std::ptrdiff_t n)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:170\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n-const Index & dereference() const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:156\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n-void increment()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:168\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n-bool equals(const iterator &other) const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:164\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\bi_\bs_\bt_\ba_\bn_\bc_\be_\bT_\bo\n-std::ptrdiff_t distanceTo(const iterator &other) const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:171\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\be_\bl_\be_\bm_\be_\bn_\bt_\bA_\bt\n-const Index & elementAt(std::ptrdiff_t n) const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:160\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by\n+Provide a factory over the generic topologies.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:42\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bF_\ba_\bc_\bt_\bo_\br_\by\n+Traits::Factory Factory\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:47\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n+static Object * create(const Dune::GeometryType >, const Key &key)\n+dynamically create objects\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const unsigned int dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:44\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n+static Object * create(const Key &key)\n+statically create objects\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:58\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\br_\be_\bl_\be_\ba_\bs_\be\n+static void release(Object *object)\n+release the object returned by the create methods\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:71\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bK_\be_\by\n+Traits::Key Key\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:45\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bO_\bb_\bj_\be_\bc_\bt\n+Traits::Object Object\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:46\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by\n+A wrapper for a TopologyFactory providing singleton storage. Same usage as\n+TopologyFactory but with e...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:82\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n+static auto create(const Key &key) -> std::enable_if_t< Topology::\n+dimension==dimension, Object * >\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:103\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n+static Object * create(const Dune::GeometryType >, const Key &key)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:88\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\br_\be_\bl_\be_\ba_\bs_\be\n+static void release(Object *object)\n+release the object returned by the create methods\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:110\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bO_\bb_\bj_\be_\bc_\bt\n+const Factory::Object Object\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:85\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bK_\be_\by\n+Factory::Key Key\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:84\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n+static auto create(const Key &key) -> std::enable_if_t< static_cast<\n+GeometryType >(geometryId).dim()==dimension, Object * >\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:95\n+_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const unsigned int dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:83\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n+constexpr unsigned int id() const\n+Return the topology id of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00182.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00182.html", "unified_diff": "@@ -87,18 +87,18 @@\n <code>#include <tuple></code><br />\n <code>#include <utility></code><br />\n <code>#include <vector></code><br />\n <code>#include <array></code><br />\n <code>#include <dune/common/typetraits.hh></code><br />\n <code>#include <dune/common/std/type_traits.hh></code><br />\n <code>#include <dune/common/visibility.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00230_source.html\">dune/geometry/dimension.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00185_source.html\">dune/geometry/referenceelement.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/referenceelementimplementation.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00209_source.html\">dune/geometry/dimension.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00206_source.html\">dune/geometry/referenceelement.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00215_source.html\">dune/geometry/referenceelementimplementation.hh</a>></code><br />\n </div>\n <p><a href=\"a00182_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01099.html\">Dune::Geo::ReferenceElements< ctype_, dim ></a></td></tr>\n <tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Class providing access to the singletons of the reference elements. <a href=\"a01099.html#details\">More...</a><br /></td></tr>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00182_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00182_source.html", "unified_diff": "@@ -97,18 +97,18 @@\n <div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n <div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <array></span></div>\n <div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n <div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n <div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/std/type_traits.hh></span></div>\n <div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/visibility.hh></span></div>\n <div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00230.html\">dune/geometry/dimension.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00185.html\">dune/geometry/referenceelement.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00188.html\">dune/geometry/referenceelementimplementation.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00209.html\">dune/geometry/dimension.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00206.html\">dune/geometry/referenceelement.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00215.html\">dune/geometry/referenceelementimplementation.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> </div>\n <div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n <div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span>{</div>\n <div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n <div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"keyword\">namespace </span>Geo</div>\n <div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> {</div>\n <div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n@@ -354,18 +354,18 @@\n <div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> </div>\n <div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span>... T></div>\n <div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\"> 347</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">ReferenceElement</a> = <span class=\"keyword\">decltype</span>(<a class=\"code hl_function\" href=\"a00254.html#ga9d6c07ba4072783d2b4809791536379e\">referenceElement</a>(std::declval<T>()...));</div>\n <div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> </div>\n <div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span>} <span class=\"comment\">// namespace Dune</span></div>\n <div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n <div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_REFERENCEELEMENTS_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00185_html\"><div class=\"ttname\"><a href=\"a00185.html\">referenceelement.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00188_html\"><div class=\"ttname\"><a href=\"a00188.html\">referenceelementimplementation.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00230_html\"><div class=\"ttname\"><a href=\"a00230.html\">dimension.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">referenceelement.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00209_html\"><div class=\"ttname\"><a href=\"a00209.html\">dimension.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00215_html\"><div class=\"ttname\"><a href=\"a00215.html\">referenceelementimplementation.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00254_html_ga9d6c07ba4072783d2b4809791536379e\"><div class=\"ttname\"><a href=\"a00254.html#ga9d6c07ba4072783d2b4809791536379e\">Dune::referenceElement</a></div><div class=\"ttdeci\">unspecified value type referenceElement(T &&... t)</div><div class=\"ttdoc\">Returns a reference element for the objects t....</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n <div class=\"ttc\" id=\"aa00263_html_a1cdbc7bdf778b00fdacba9b2e0efe8ee\"><div class=\"ttname\"><a href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">Dune::ReferenceElement</a></div><div class=\"ttdeci\">decltype(referenceElement(std::declval< T >()...)) ReferenceElement</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:347</div></div>\n <div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n <div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n <div class=\"ttc\" id=\"aa01099_html_a06c1cffcf2df44f0a569aad5e2eb698f\"><div class=\"ttname\"><a href=\"a01099.html#a06c1cffcf2df44f0a569aad5e2eb698f\">Dune::Geo::ReferenceElements::begin</a></div><div class=\"ttdeci\">static Iterator begin()</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:173</div></div>\n <div class=\"ttc\" id=\"aa01099_html_a0f31508995b02dd89678b95d0cc39469\"><div class=\"ttname\"><a href=\"a01099.html#a0f31508995b02dd89678b95d0cc39469\">Dune::Geo::ReferenceElements::iterator</a></div><div class=\"ttdeci\">Iterator iterator</div><div class=\"ttdoc\">Iterator over available reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:152</div></div>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -276,19 +276,19 @@\n 345\n 346 template<typename... T>\n _\b3_\b4_\b7 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt = decltype(_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt(std::declval<T>()...));\n 348\n 349} // namespace Dune\n 350\n 351#endif // #ifndef DUNE_GEOMETRY_REFERENCEELEMENTS_HH\n-_\bt_\by_\bp_\be_\b._\bh_\bh\n-A unique label for each type of element that can occur in a grid.\n _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b._\bh_\bh\n _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b._\bh_\bh\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b._\bh_\bh\n+_\bt_\by_\bp_\be_\b._\bh_\bh\n+A unique label for each type of element that can occur in a grid.\n _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n unspecified value type referenceElement(T &&... t)\n Returns a reference element for the objects t....\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n decltype(referenceElement(std::declval< T >()...)) ReferenceElement\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00185.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00185.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: referenceelement.hh File Reference</title>\n+<title>dune-geometry: referenceelementimplementation.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,32 +70,20 @@\n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">referenceelement.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-</div>\n-<p><a href=\"a00185_source.html\">Go to the source code of this file.</a></p>\n-<table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n-Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01091.html\">Dune::Geo::ReferenceElement< Implementation ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This class provides access to geometric and topological properties of a reference element. <a href=\"a01091.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01215.html\">Dune::Geo::ReferenceElement< Implementation >::Codim< codim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Collection of types depending on the codimension. <a href=\"a01215.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n+<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00215_source.html\">dune/geometry/referenceelementimplementation.hh</a>></code><br />\n+</div><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,25 +1,16 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-referenceelement.hh File Reference\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-_\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\b>\n-\u00a0 This class provides access to geometric and topological properties of\n- a reference element. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\b _\b>\n-\u00a0 Collection of types depending on the codimension. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n+_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+referenceelementimplementation.cc File Reference\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b._\bh_\bh>\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n \u00a0\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00188.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00188.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: referenceelementimplementation.hh File Reference</title>\n+<title>dune-geometry: quadraturerules.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,45 +70,129 @@\n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.hh File Reference</div></div>\n+<a href=\"#nested-classes\">Classes</a> |\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> |\n+<a href=\"#enum-members\">Enumerations</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">quadraturerules.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <algorithm></code><br />\n+<div class=\"textblock\"><code>#include <algorithm></code><br />\n+<code>#include <iostream></code><br />\n <code>#include <limits></code><br />\n-<code>#include <tuple></code><br />\n+<code>#include <mutex></code><br />\n <code>#include <utility></code><br />\n <code>#include <vector></code><br />\n-<code>#include <array></code><br />\n-<code>#include <bitset></code><br />\n-<code>#include <dune/common/fmatrix.hh></code><br />\n <code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/hybridutilities.hh></code><br />\n-<code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <dune/common/iteratorrange.hh></code><br />\n-<code>#include <dune/common/math.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00185_source.html\">dune/geometry/referenceelement.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <dune/common/exceptions.hh></code><br />\n+<code>#include <dune/common/stdstreams.hh></code><br />\n+<code>#include <dune/common/stdthread.hh></code><br />\n+<code>#include <dune/common/visibility.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00221_source.html\">dune/geometry/typeindex.hh</a>></code><br />\n+<code>#include "quadraturerules/pointquadrature.hh"</code><br />\n+<code>#include "quadraturerules/gausslobattoquadrature.hh"</code><br />\n+<code>#include "quadraturerules/gaussquadrature.hh"</code><br />\n+<code>#include "quadraturerules/gaussradauleftquadrature.hh"</code><br />\n+<code>#include "quadraturerules/gaussradaurightquadrature.hh"</code><br />\n+<code>#include "quadraturerules/jacobi1quadrature.hh"</code><br />\n+<code>#include "quadraturerules/jacobi2quadrature.hh"</code><br />\n+<code>#include "quadraturerules/jacobiNquadrature.hh"</code><br />\n+<code>#include "quadraturerules/prismquadrature.hh"</code><br />\n+<code>#include "quadraturerules/simplexquadrature.hh"</code><br />\n+<code>#include "quadraturerules/tensorproductquadrature.hh"</code><br />\n </div>\n <p><a href=\"a00188_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n+Classes</h2></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01167.html\">std::tuple_size< Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01171.html\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01175.html\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01179.html\">Dune::QuadratureOrderOutOfRange</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Exception thrown if a desired <a class=\"el\" href=\"a01183.html\" title=\"Abstract base class for quadrature rules.\">QuadratureRule</a> is not available, because the requested order is to high. <a href=\"a01179.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01163.html\">Dune::QuadraturePoint< ct, dim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Single evaluation point in a quadrature rule. <a href=\"a01163.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01183.html\">Dune::QuadratureRule< ct, dim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Abstract base class for quadrature rules. <a href=\"a01183.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01191.html\">Dune::QuadratureRules< ctype, dim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A container for all quadrature rules of dimension <code>dim</code> <a href=\"a01191.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01187.html\">Dune::QuadratureRuleFactory< ctype, dim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Factory class for creation of quadrature rules, depending on <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>, order and <a class=\"el\" href=\"a00266.html\" title=\"Defines an enum for currently available quadrature rules.\">QuadratureType</a>. <a href=\"a01187.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01195.html\">Dune::QuadratureRuleFactory< ctype, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01199.html\">Dune::QuadratureRuleFactory< ctype, 1 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01203.html\">Dune::QuadratureRuleFactory< ctype, 2 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01207.html\">Dune::QuadratureRuleFactory< ctype, 3 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n+<tr class=\"memitem:a00262\" id=\"r_a00262\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00262.html\">std</a></td></tr>\n+<tr class=\"memdesc:a00262\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">STL namespace. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00266\" id=\"r_a00266\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00266.html\">Dune::QuadratureType</a></td></tr>\n+<tr class=\"memdesc:a00266\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Defines an <code>enum</code> for currently available quadrature rules. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:a0aeda817d7161b7c1afd8dd15ff12f17\" id=\"r_a0aeda817d7161b7c1afd8dd15ff12f17\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00188.html#a0aeda817d7161b7c1afd8dd15ff12f17\">DUNE_INCLUDING_IMPLEMENTATION</a></td></tr>\n+<tr class=\"separator:a0aeda817d7161b7c1afd8dd15ff12f17\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\n+Enumerations</h2></td></tr>\n+<tr class=\"memitem:a7d0a250c55cc0a769535f8fb07731ac4\" id=\"r_a7d0a250c55cc0a769535f8fb07731ac4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">Dune::QuadratureType::Enum</a> { <br />\n+  <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">Dune::QuadratureType::GaussLegendre</a> = 0\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">Dune::QuadratureType::GaussJacobi_1_0</a> = 1\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">Dune::QuadratureType::GaussJacobi_2_0</a> = 2\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">Dune::QuadratureType::GaussJacobi_n_0</a> = 3\n+, <br />\n+  <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">Dune::QuadratureType::GaussLobatto</a> = 4\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">Dune::QuadratureType::GaussRadauLeft</a> = 5\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">Dune::QuadratureType::GaussRadauRight</a> = 6\n+, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">Dune::QuadratureType::size</a>\n+<br />\n+ }</td></tr>\n+<tr class=\"separator:a7d0a250c55cc0a769535f8fb07731ac4\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>Interface for quadrature points and rules </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"a0aeda817d7161b7c1afd8dd15ff12f17\" name=\"a0aeda817d7161b7c1afd8dd15ff12f17\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0aeda817d7161b7c1afd8dd15ff12f17\">◆ </a></span>DUNE_INCLUDING_IMPLEMENTATION</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_INCLUDING_IMPLEMENTATION</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,33 +1,94 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-referenceelementimplementation.hh File Reference\n-#include <cassert>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bE_\bn_\bu_\bm_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs\n+quadraturerules.hh File Reference\n #include <algorithm>\n+#include <iostream>\n #include <limits>\n-#include <tuple>\n+#include <mutex>\n #include <utility>\n #include <vector>\n-#include <array>\n-#include <bitset>\n-#include <dune/common/fmatrix.hh>\n #include <dune/common/fvector.hh>\n-#include <dune/common/hybridutilities.hh>\n-#include <dune/common/typetraits.hh>\n-#include <dune/common/iteratorrange.hh>\n-#include <dune/common/math.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+#include <dune/common/exceptions.hh>\n+#include <dune/common/stdstreams.hh>\n+#include <dune/common/stdthread.hh>\n+#include <dune/common/visibility.hh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n+#include \"quadraturerules/pointquadrature.hh\"\n+#include \"quadraturerules/gausslobattoquadrature.hh\"\n+#include \"quadraturerules/gaussquadrature.hh\"\n+#include \"quadraturerules/gaussradauleftquadrature.hh\"\n+#include \"quadraturerules/gaussradaurightquadrature.hh\"\n+#include \"quadraturerules/jacobi1quadrature.hh\"\n+#include \"quadraturerules/jacobi2quadrature.hh\"\n+#include \"quadraturerules/jacobiNquadrature.hh\"\n+#include \"quadraturerules/prismquadrature.hh\"\n+#include \"quadraturerules/simplexquadrature.hh\"\n+#include \"quadraturerules/tensorproductquadrature.hh\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\bs_\bi_\bz_\be_\b<_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n+\u00a0\n+struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b0_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n+\u00a0\n+struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b1_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be\n+\u00a0 Exception thrown if a desired _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be is not available, because\n+ the requested order is to high. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>\n+\u00a0 Single evaluation point in a quadrature rule. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>\n+\u00a0 Abstract base class for quadrature rules. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>\n+\u00a0 A container for all quadrature rules of dimension dim _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>\n+\u00a0 Factory class for creation of quadrature rules, depending on\n+ _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, order and _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b1_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b2_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b3_\b _\b>\n+\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n+namespace \u00a0 _\bs_\bt_\bd\n+\u00a0 STL namespace.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be\n+\u00a0 Defines an enum for currently available quadrature rules.\n+\u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bI_\bN_\bC_\bL_\bU_\bD_\bI_\bN_\bG_\b__\bI_\bM_\bP_\bL_\bE_\bM_\bE_\bN_\bT_\bA_\bT_\bI_\bO_\bN\n+\u00a0\n+E\bEn\bnu\bum\bme\ber\bra\bat\bti\bio\bon\bns\bs\n+enum \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm {\n+ \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be = 0 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n+ _\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 = 1 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 = 2 , _\bD_\bu_\bn_\be_\b:_\b:\n+ _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 = 3 ,\n+ \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo = 4 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n+ _\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt = 5 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt = 6 , _\bD_\bu_\bn_\be_\b:_\b:\n+ _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bz_\be\n+ }\n \u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+Interface for quadrature points and rules\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_I\bIN\bNC\bCL\bLU\bUD\bDI\bIN\bNG\bG_\b_I\bIM\bMP\bPL\bLE\bEM\bME\bEN\bNT\bTA\bAT\bTI\bIO\bON\bN *\b**\b**\b**\b**\b*\n+#define DUNE_INCLUDING_IMPLEMENTATION\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00188_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00188_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: referenceelementimplementation.hh Source File</title>\n+<title>dune-geometry: quadraturerules.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,724 +74,502 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">quadraturerules.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00188.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <algorithm></span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <algorithm></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <iostream></span></div>\n <div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <tuple></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <mutex></span></div>\n <div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <utility></span></div>\n <div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <array></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <bitset></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/hybridutilities.hh></span></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <dune/common/iteratorrange.hh></span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/stdstreams.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/stdthread.hh></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/visibility.hh></span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00221.html\">dune/geometry/typeindex.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00185.html\">dune/geometry/referenceelement.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00170.html\">dune/geometry/affinegeometry.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span>{</div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">namespace </span>Geo</div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> {</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// forward declaration</span></div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">class </span>QuadraturePoint;</div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span>}</div>\n <div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> </div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">// Internal Forward Declarations</span></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// -----------------------------</span></div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> </div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keyword\">namespace </span>Impl</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> {</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">class </span>ReferenceElementContainer;</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> }</div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"keyword\">struct </span>ReferenceElements;</div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span><span class=\"comment\">// class specialization of standard classes that allow to use structured bindings on QuadraturePoint</span></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00262.html\">std</a> {</div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01167.html\"> 40</a></span> <span class=\"keyword\">struct </span>tuple_size<<a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> : <span class=\"keyword\">public</span> std::integral_constant<std::size_t,2> {};</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> </div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\"> 43</a></span> <span class=\"keyword\">struct </span>tuple_element<0, <a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> { <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\">type</a> = Dune::FieldVector<ct, dim>; };</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\"> 46</a></span> <span class=\"keyword\">struct </span>tuple_element<1, <a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> { <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\">type</a> = ct; };</div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span>}</div>\n <div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> </div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n <div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"keyword\">namespace </span>Impl</div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> {</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> </div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> <span class=\"keyword\">using </span>Dune::Impl::isPrism;</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keyword\">using </span>Dune::Impl::isPyramid;</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keyword\">using </span>Dune::Impl::baseTopologyId;</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">using </span>Dune::Impl::prismConstruction;</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> <span class=\"keyword\">using </span>Dune::Impl::pyramidConstruction;</div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"keyword\">using </span>Dune::Impl::numTopologies;</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim );</div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> </div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> subTopologyId ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i );</div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01179.html\"> 55</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01179.html\">QuadratureOrderOutOfRange</a> : <span class=\"keyword\">public</span> NotImplemented {};</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> </div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html\"> 66</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01163.html\">QuadraturePoint</a> {</div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\"> 69</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\">dimension</a> = dim;</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\"> 72</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\">Field</a>;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\"> 75</a></span> <span class=\"keyword\">typedef</span> Dune::FieldVector<ct,dim> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>;</div>\n <div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> </div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"comment\">// subTopologyNumbering</span></div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> <span class=\"comment\">// --------------------</span></div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordtype\">void</span> subTopologyNumbering ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> subcodim,</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *beginOut, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *endOut );</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> </div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> <span class=\"comment\">// checkInside</span></div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> <span class=\"comment\">// -----------</span></div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> checkInside ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keyword\">const</span> FieldVector< ct, cdim > &x, ct tolerance, ct factor = ct( 1 ) )</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> {</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> assert( topologyId < numTopologies( dim ) );</div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> </div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> {</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">const</span> ct baseFactor = (isPrism( topologyId, dim ) ? factor : factor - x[ dim-1 ]);</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keywordflow\">if</span>( (x[ dim-1 ] > -tolerance) && (factor - x[ dim-1 ] > -tolerance) )</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"keywordflow\">return</span> checkInside< ct, cdim >( baseTopologyId( topologyId, dim ), dim-1, x, tolerance, baseFactor );</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> }</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> </div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> </div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> </div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// referenceCorners</span></div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"comment\">// ----------------</span></div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> referenceCorners ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, FieldVector< ct, cdim > *corners )</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> {</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> assert( topologyId < numTopologies( dim ) );</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> {</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nBaseCorners</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> = referenceCorners( baseTopologyId( topologyId, dim ), dim-1, corners );</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> assert( nBaseCorners == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( baseTopologyId( topologyId, dim ), dim-1, dim-1 ) );</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> std::copy( corners, corners + nBaseCorners, corners + nBaseCorners );</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < nBaseCorners; ++i )</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> corners[ i+nBaseCorners ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keywordflow\">return</span> 2*nBaseCorners;</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> }</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> {</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> corners[ nBaseCorners ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> corners[ nBaseCorners ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keywordflow\">return</span> nBaseCorners+1;</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> }</div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> }</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> {</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> *corners = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keywordflow\">return</span> 1;</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> }</div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> }</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> </div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"comment\">// referenceVolume</span></div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"comment\">// ---------------</span></div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">long</span> referenceVolumeInverse ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim );</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> </div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct ></div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">inline</span> ct referenceVolume ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim )</div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> {</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"keywordflow\">return</span> ct( 1 ) / ct( referenceVolumeInverse( topologyId, dim ) );</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> }</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> </div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> </div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"comment\">// referenceOrigins</span></div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> <span class=\"comment\">// ----------------</span></div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> referenceOrigins ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, FieldVector< ct, cdim > *origins )</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> {</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> assert( topologyId < numTopologies( dim ) );</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> assert( (codim >= 0) && (codim <= dim) );</div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keywordflow\">if</span>( codim > 0 )</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> {</div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> {</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = (codim < dim ? referenceOrigins( baseId, dim-1, codim, origins ) : 0);</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceOrigins( baseId, dim-1, codim-1, origins+n );</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> {</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> origins[ n+m+i ] = origins[ n+i ];</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> origins[ n+m+i ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> }</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> <span class=\"keywordflow\">return</span> n+2*m;</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> }</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> {</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceOrigins( baseId, dim-1, codim-1, origins );</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keywordflow\">if</span>( codim == dim )</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> {</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> origins[ m ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">return</span> m+1;</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> }</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordflow\">return</span> m+referenceOrigins( baseId, dim-1, codim, origins+m );</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> }</div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> }</div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"keywordflow\">return</span> 1;</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> }</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> }</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> </div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> </div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <span class=\"comment\">// referenceEmbeddings</span></div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"comment\">// -------------------</span></div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> </div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim, <span class=\"keywordtype\">int</span> mydim ></div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> referenceEmbeddings ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim,</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> FieldVector< ct, cdim > *origins,</div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> FieldMatrix< ct, mydim, cdim > *jacobianTransposeds )</div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> {</div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> assert( (0 <= codim) && (codim <= dim) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> assert( (dim - codim <= mydim) && (mydim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> assert( topologyId < numTopologies( dim ) );</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> </div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"keywordflow\">if</span>( (0 < codim) && (codim <= dim) )</div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> {</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> {</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = (codim < dim ? referenceEmbeddings( baseId, dim-1, codim, origins, jacobianTransposeds ) : 0);</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> jacobianTransposeds[ i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> </div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceEmbeddings( baseId, dim-1, codim-1, origins+n, jacobianTransposeds+n );</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> std::copy( origins+n, origins+n+m, origins+n+m );</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> std::copy( jacobianTransposeds+n, jacobianTransposeds+n+m, jacobianTransposeds+n+m );</div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> origins[ n+m+i ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"foldopen\" id=\"foldopen00078\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\"> 78</a></span> <a class=\"code hl_function\" href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\">QuadraturePoint</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>& x, ct w) : <a class=\"code hl_variable\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">local</a>(x), <a class=\"code hl_variable\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">weight_</a>(w)</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00082\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\"> 82</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>& <a class=\"code hl_function\" href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\">position</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_variable\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">local</a>;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00088\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\"> 88</a></span> <span class=\"keyword\">const</span> ct &<a class=\"code hl_function\" href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\">weight</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_variable\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">weight_</a>;</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> index, std::enable_if_t<(index<=1), <span class=\"keywordtype\">int</span>> = 0></div>\n+<div class=\"foldopen\" id=\"foldopen00112\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#af765c0d87c9730a68d0a4182a1e58942\"> 112</a></span> std::tuple_element_t<index, QuadraturePo<span class=\"keywordtype\">int</span><ct, dim>> get() const</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> {</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> if constexpr (index == 0) {</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> return local;</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> }</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> else {</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> return weight_;</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> }</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> protected:</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\"> 123</a></span> FieldVector<ct, dim> local;</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\"> 124</a></span> ct weight_;</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00130\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html\"> 130</a></span> namespace QuadratureType {</div>\n+<div class=\"foldopen\" id=\"foldopen00131\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\"> 131</a></span> enum Enum {</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\"> 141</a></span> GaussLegendre = 0,</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> </div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\"> 148</a></span> GaussJacobi_1_0 = 1,</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> </div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\"> 155</a></span> GaussJacobi_2_0 = 2,</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> </div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\"> 168</a></span> GaussJacobi_n_0 = 3,</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> </div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\"> 176</a></span> GaussLobatto = 4,</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\"> 184</a></span> GaussRadauLeft = 5,</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> </div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\"> 193</a></span> GaussRadauRight = 6,</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> size</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\"> 195</a></span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"foldopen\" id=\"foldopen00213\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html\"> 213</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a> : <span class=\"keyword\">public</span> std::vector<QuadraturePoint<ct,dim> ></div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> {</div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\"> 221</a></span> <a class=\"code hl_function\" href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\">QuadratureRule</a>() : delivered_order(-1) {}</div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> </div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\"> 225</a></span> <a class=\"code hl_function\" href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\">QuadratureRule</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> t) : geometry_type(t), delivered_order(-1) {}</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> </div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\"> 228</a></span> <a class=\"code hl_function\" href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\">QuadratureRule</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> t, <span class=\"keywordtype\">int</span> order) : geometry_type(t), delivered_order(order) {}</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a2d1201427761a54ab6eb316e6dfb00eb\"> 231</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> d = dim;</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> </div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\"> 234</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\">CoordType</a>;</div>\n <div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> </div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> <span class=\"keywordflow\">return</span> n+2*m;</div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> }</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keywordflow\">else</span> <span class=\"comment\">// !isPrism</span></div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> {</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceEmbeddings( baseId, dim-1, codim-1, origins, jacobianTransposeds );</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keywordflow\">if</span>( codim == dim )</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> origins[ m ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> jacobianTransposeds[ m ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"keywordflow\">return</span> m+1;</div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> }</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( codim < dim )</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> {</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = referenceEmbeddings( baseId, dim-1, codim, origins+m, jacobianTransposeds+m );</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> {</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < dim-1; ++k )</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> jacobianTransposeds[ m+i ][ dim-codim-1 ][ k ] = -origins[ m+i ][ k ];</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> jacobianTransposeds[ m+i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keywordflow\">return</span> m+n;</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> }</div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> }</div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> }</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( codim == 0 )</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> {</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> jacobianTransposeds[ 0 ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < dim; ++k )</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> jacobianTransposeds[ 0 ][ k ][ k ] = ct( 1 );</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"keywordflow\">return</span> 1;</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> }</div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> </div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> <span class=\"comment\">// this point should not be reached since all cases are handled before.</span></div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> std::abort();</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keywordflow\">return</span> 0;</div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> }</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> </div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> </div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> </div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"comment\">// referenceIntegrationOuterNormals</span></div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"comment\">// --------------------------------</span></div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> </div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> referenceIntegrationOuterNormals ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim,</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">const</span> FieldVector< ct, cdim > *origins,</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> FieldVector< ct, cdim > *normals )</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> {</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> assert( (dim > 0) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> assert( topologyId < numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\"> 237</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\">order</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> delivered_order; }</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> </div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\"> 240</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\">type</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> geometry_type; }</div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\"> 241</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\">~QuadratureRule</a>(){}</div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> </div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::vector<QuadraturePoint<ct,dim> >::const_iterator <a class=\"code hl_typedef\" href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\">iterator</a>;</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\"> 248</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_variable\" href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\">geometry_type</a>;</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\"> 249</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\">delivered_order</a>;</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> </div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"comment\">// Forward declaration of the factory class,</span></div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"comment\">// needed internally by the QuadratureRules container class.</span></div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a>;</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html\"> 260</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> {</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a> = <a class=\"code hl_class\" href=\"a01183.html\">Dune::QuadratureRule<ctype, dim></a>;</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"comment\">// indexed by quadrature order</span></div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">using </span>QuadratureOrderVector = std::vector<std::pair<std::once_flag, QuadratureRule> >;</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> </div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> <span class=\"comment\">// indexed by geometry type</span></div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keyword\">using </span>GeometryTypeVector = std::vector<std::pair<std::once_flag, QuadratureOrderVector> >;</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"comment\">// indexed by quadrature type enum</span></div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keyword\">using </span>QuadratureCacheVector = std::vector<std::pair<std::once_flag, GeometryTypeVector> >;</div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> </div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> DUNE_EXPORT <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& _rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> assert(t.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()==dim);</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> </div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> DUNE_ASSERT_CALL_ONCE();</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> </div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">static</span> QuadratureCacheVector quadratureCache(QuadratureType::size);</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">auto</span>& [ onceFlagQuadratureType, geometryTypes ] = quadratureCache[qt];</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"comment\">// initialize geometry types for this quadrature type once</span></div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> std::call_once(onceFlagQuadratureType, [&types = geometryTypes]{</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> types = GeometryTypeVector(LocalGeometryTypeIndex::size(dim));</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> });</div>\n <div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">if</span>( dim > 1 )</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> {</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> {</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numBaseFaces</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> = referenceIntegrationOuterNormals( baseId, dim-1, origins, normals );</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keyword\">auto</span>& [ onceFlagGeometryType, quadratureOrders ] = geometryTypes[LocalGeometryTypeIndex::index(t)];</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"comment\">// initialize quadrature orders for this geometry type and quadrature type once</span></div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> std::call_once(onceFlagGeometryType, [&, &orders = quadratureOrders]{</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"comment\">// we only need one quadrature rule for points, not maxint</span></div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keyword\">const</span> <span class=\"keyword\">auto</span> numRules = dim == 0 ? 1 : <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::maxOrder</a>(t, qt)+1;</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> orders = QuadratureOrderVector(numRules);</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> });</div>\n <div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> </div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < 2; ++i )</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> {</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> normals[ numBaseFaces+i ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> normals[ numBaseFaces+i ][ dim-1 ] = ct( 2*<span class=\"keywordtype\">int</span>( i )-1 );</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">return</span> numBaseFaces+2;</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> }</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> {</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> normals[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> normals[ 0 ][ dim-1 ] = ct( -1 );</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numBaseFaces</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> = referenceIntegrationOuterNormals( baseId, dim-1, origins+1, normals+1 );</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 1; i <= numBaseFaces; ++i )</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> normals[ i ][ dim-1 ] = normals[ i ]*origins[ i ];</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> </div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> numBaseFaces+1;</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> {</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < 2; ++i )</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> {</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> normals[ i ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> normals[ i ][ 0 ] = ct( 2*<span class=\"keywordtype\">int</span>( i )-1 );</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> }</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> </div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keywordflow\">return</span> 2;</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> }</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> }</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> </div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> referenceIntegrationOuterNormals ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim,</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> FieldVector< ct, cdim > *normals )</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> {</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> assert( (dim > 0) && (dim <= cdim) );</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> </div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> FieldVector< ct, cdim > *origins</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> = <span class=\"keyword\">new</span> FieldVector< ct, cdim >[ <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( topologyId, dim, 1 ) ];</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> referenceOrigins( topologyId, dim, 1, origins );</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"comment\">// we only have one quadrature rule for points</span></div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keyword\">auto</span>& [ onceFlagQuadratureOrder, quadratureRule ] = quadratureOrders[dim == 0 ? 0 : p];</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"comment\">// initialize quadrature rule once</span></div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> std::call_once(onceFlagQuadratureOrder, [&, &rule = quadratureRule]{</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> rule = <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::rule</a>(t, p, qt);</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> });</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> </div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> <span class=\"keywordflow\">return</span> quadratureRule;</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> }</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> </div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> DUNE_EXPORT <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a>& instance()</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> {</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> instance;</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keywordflow\">return</span> instance;</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> }</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> </div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span></div>\n+<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\"> 319</a></span> <a class=\"code hl_function\" href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\">maxOrder</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t,</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> {</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::maxOrder</a>(t,qt);</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00326\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\"> 326</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& <a class=\"code hl_function\" href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\">rule</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> {</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <span class=\"keywordflow\">return</span> instance()._rule(t,p,qt);</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00332\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\"> 332</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& <a class=\"code hl_function\" href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\">rule</a>(<span class=\"keyword\">const</span> <a class=\"code hl_enumeration\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">GeometryType::BasicType</a> t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> {</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt(t,dim);</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">return</span> instance()._rule(gt,p,qt);</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> </div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span>} <span class=\"comment\">// end namespace Dune</span></div>\n <div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numFaces</div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> = referenceIntegrationOuterNormals( topologyId, dim, origins, normals );</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> assert( numFaces == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( topologyId, dim, 1 ) );</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <span class=\"keyword\">delete</span>[] origins;</div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keywordflow\">return</span> numFaces;</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> }</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> </div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> } <span class=\"comment\">// namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> </div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"comment\">// ReferenceElement</span></div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"comment\">// ----------------</span></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> </div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype_, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">class </span>ReferenceElementImplementation</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> {</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> </div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> </div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keyword\">using </span>ctype = ctype_;</div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">using </span>CoordinateField = ctype;</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">using </span>Coordinate = Dune::FieldVector<ctype,dim>;</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> </div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> dimension = dim;</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> </div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keyword\">typedef</span> ctype Volume;</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> </div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> </div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span>Impl::ReferenceElementContainer< ctype, dim >;</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> </div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keyword\">struct </span>SubEntityInfo;</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> </div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim > <span class=\"keyword\">struct </span>CreateGeometries;</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> </div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">struct </span>Codim</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> {</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">typedef</span> AffineGeometry< ctype, dim-codim, dim > Geometry;</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> };</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> </div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"comment\">// ReferenceElement cannot be copied.</span></div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> ReferenceElementImplementation ( <span class=\"keyword\">const</span> ReferenceElementImplementation& ) = <span class=\"keyword\">delete</span>;</div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> </div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"comment\">// ReferenceElementImplementation cannot be copied.</span></div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> ReferenceElementImplementation& operator= ( <span class=\"keyword\">const</span> ReferenceElementImplementation& ) = <span class=\"keyword\">delete</span>;</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> </div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"comment\">// ReferenceElementImplementation is default-constructible (required for storage in std::array)</span></div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> ReferenceElementImplementation () = <span class=\"keywordflow\">default</span>;</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> </div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> assert( (c >= 0) && (c <= dim) );</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">return</span> info_[ c ].size();</div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> }</div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> </div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].size( cc );</div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> }</div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> <span class=\"keywordtype\">int</span> subEntity ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> ii, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].number( ii, cc );</div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> }</div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> </div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keyword\">auto</span> subEntities ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].numbers( cc );</div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> }</div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00188.html#a0aeda817d7161b7c1afd8dd15ff12f17\"> 341</a></span><span class=\"preprocessor\">#define DUNE_INCLUDING_IMPLEMENTATION</span></div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> </div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span><span class=\"comment\">// 0d rules</span></div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span><span class=\"preprocessor\">#include "quadraturerules/pointquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span><span class=\"comment\">// 1d rules</span></div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"preprocessor\">#include "quadraturerules/gausslobattoquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span><span class=\"preprocessor\">#include "quadraturerules/gaussquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span><span class=\"preprocessor\">#include "quadraturerules/gaussradauleftquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span><span class=\"preprocessor\">#include "quadraturerules/gaussradaurightquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span><span class=\"preprocessor\">#include "quadraturerules/jacobi1quadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span><span class=\"preprocessor\">#include "quadraturerules/jacobi2quadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span><span class=\"preprocessor\">#include "quadraturerules/jacobiNquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span><span class=\"comment\">// 3d rules</span></div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"preprocessor\">#include "quadraturerules/prismquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span><span class=\"comment\">// general rules</span></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span><span class=\"preprocessor\">#include "quadraturerules/simplexquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span><span class=\"preprocessor\">#include "quadraturerules/tensorproductquadrature.hh"</span></div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span><span class=\"preprocessor\">#undef DUNE_INCLUDING_IMPLEMENTATION</span></div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> </div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> </div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"foldopen\" id=\"foldopen00370\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01187.html\"> 370</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a> {</div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> {</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> }</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> {</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> }</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> </div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n+<div class=\"foldopen\" id=\"foldopen00384\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01195.html\"> 384</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 0> {</div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01195.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 386</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 0;</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a>)</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> {</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">isVertex</a>())</div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> {</div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordflow\">return</span> std::numeric_limits<int>::max();</div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> }</div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> }</div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">static</span> QuadratureRule<ctype, dim> rule(<span class=\"keyword\">const</span> GeometryType& t, <span class=\"keywordtype\">int</span> , <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a>)</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> {</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keywordflow\">if</span> (t.isVertex())</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> {</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keywordflow\">return</span> PointQuadratureRule<ctype>();</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> }</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> }</div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> </div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n+<div class=\"foldopen\" id=\"foldopen00407\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01199.html\"> 407</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 1> {</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01199.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 409</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 1;</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> {</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">isLine</a>())</div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> {</div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">switch</span> (qt) {</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> :</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">return</span> GaussQuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">QuadratureType::GaussJacobi_1_0</a> :</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"keywordflow\">return</span> Jacobi1QuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">QuadratureType::GaussJacobi_2_0</a> :</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keywordflow\">return</span> Jacobi2QuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">QuadratureType::GaussLobatto</a> :</div>\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"keywordflow\">return</span> GaussLobattoQuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> :</div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"keywordflow\">return</span> JacobiNQuadratureRule1D<ctype>::maxOrder();</div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">QuadratureType::GaussRadauLeft</a> :</div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">return</span> GaussRadauLeftQuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">QuadratureType::GaussRadauRight</a> :</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">return</span> GaussRadauRightQuadratureRule1D<ctype>::highest_order;</div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> default :</div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown QuadratureType"</span>);</div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> }</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> }</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> }</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> <span class=\"keyword\">static</span> QuadratureRule<ctype, dim> rule(<span class=\"keyword\">const</span> GeometryType& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> {</div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keywordflow\">if</span> (t.isLine())</div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> {</div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"keywordflow\">switch</span> (qt) {</div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> :</div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keywordflow\">return</span> GaussQuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">QuadratureType::GaussJacobi_1_0</a> :</div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keywordflow\">return</span> Jacobi1QuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">QuadratureType::GaussJacobi_2_0</a> :</div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> Jacobi2QuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">QuadratureType::GaussLobatto</a> :</div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> <span class=\"keywordflow\">return</span> GaussLobattoQuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> :</div>\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keywordflow\">return</span> JacobiNQuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">QuadratureType::GaussRadauLeft</a> :</div>\n+<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keywordflow\">return</span> GaussRadauLeftQuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">QuadratureType::GaussRadauRight</a> :</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> <span class=\"keywordflow\">return</span> GaussRadauRightQuadratureRule1D<ctype>(p);</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> default :</div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown QuadratureType"</span>);</div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> }</div>\n+<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> }</div>\n+<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n+<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> }</div>\n+<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> </div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n+<div class=\"foldopen\" id=\"foldopen00464\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01203.html\"> 464</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 2> {</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01203.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 466</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 2;</div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n+<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> {</div>\n+<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> <span class=\"keywordtype\">unsigned</span> order =</div>\n+<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n+<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n+<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> order = std::max</div>\n+<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(SimplexQuadratureRule<ctype,dim>::highest_order));</div>\n+<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> <span class=\"keywordflow\">return</span> order;</div>\n+<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> }</div>\n+<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n+<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()</div>\n+<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> && ( qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> || qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> )</div>\n+<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> && p <= SimplexQuadratureRule<ctype,dim>::highest_order)</div>\n+<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> {</div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keywordflow\">return</span> SimplexQuadratureRule<ctype,dim>(p);</div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> }</div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> }</div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> };</div>\n+</div>\n <div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> </div>\n-<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> <span class=\"keyword\">const</span> GeometryType &type ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n-<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].type();</div>\n-<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> }</div>\n-<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> </div>\n-<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keyword\">const</span> GeometryType &type ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> type( 0, 0 ); }</div>\n-<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> </div>\n-<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keyword\">const</span> Coordinate &position( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> assert( (c >= 0) && (c <= dim) );</div>\n-<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> <span class=\"keywordflow\">return</span> baryCenters_[ c ][ i ];</div>\n-<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> }</div>\n-<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> </div>\n-<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keywordtype\">bool</span> checkInside ( <span class=\"keyword\">const</span> Coordinate &local )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keyword\">const</span> ctype tolerance = ctype( 64 ) * std::numeric_limits< ctype >::epsilon();</div>\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keywordflow\">return</span> Impl::template checkInside< ctype, dim >( type().<span class=\"keywordtype\">id</span>(), dim, local, tolerance );</div>\n-<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> }</div>\n-<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> </div>\n-<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n-<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> <span class=\"keyword\">typename</span> Codim< codim >::Geometry geometry ( <span class=\"keywordtype\">int</span> i )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> <span class=\"keywordflow\">return</span> std::get< codim >( geometries_ )[ i ];</div>\n-<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> }</div>\n-<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> </div>\n-<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> Volume volume ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keywordflow\">return</span> volume_;</div>\n-<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n-<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> </div>\n-<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> <span class=\"keyword\">const</span> Coordinate &integrationOuterNormal ( <span class=\"keywordtype\">int</span> face )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> assert( (face >= 0) && (face < <span class=\"keywordtype\">int</span>( integrationNormals_.size() )) );</div>\n-<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> <span class=\"keywordflow\">return</span> integrationNormals_[ face ];</div>\n-<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> }</div>\n-<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> </div>\n-<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> <span class=\"keywordtype\">void</span> initialize ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId )</div>\n-<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> {</div>\n-<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> assert( topologyId < Impl::numTopologies( dim ) );</div>\n-<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> </div>\n-<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> <span class=\"comment\">// set up subentities</span></div>\n-<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> codim = 0; codim <= dim; ++codim )</div>\n-<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> {</div>\n-<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> = Impl::size( topologyId, dim, codim );</div>\n-<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> info_[ codim ].resize( size );</div>\n-<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>; ++i )</div>\n-<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> info_[ codim ][ i ].initialize( topologyId, codim, i );</div>\n-<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> }</div>\n-<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> </div>\n-<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> <span class=\"comment\">// compute corners</span></div>\n-<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numVertices = <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( dim );</div>\n-<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> baryCenters_[ dim ].resize( numVertices );</div>\n-<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> Impl::referenceCorners( topologyId, dim, &(baryCenters_[ dim ][ 0 ]) );</div>\n-<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"> 588</span> </div>\n-<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"> 589</span> <span class=\"comment\">// compute barycenters</span></div>\n-<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> codim = 0; codim < dim; ++codim )</div>\n-<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> {</div>\n-<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> baryCenters_[ codim ].resize( <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>(codim) );</div>\n-<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( codim ); ++i )</div>\n-<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> {</div>\n-<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"> 595</span> baryCenters_[ codim ][ i ] = Coordinate( ctype( 0 ) );</div>\n-<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numCorners = <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( i, codim, dim );</div>\n-<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> j = 0; j < numCorners; ++j )</div>\n-<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> baryCenters_[ codim ][ i ] += baryCenters_[ dim ][ subEntity( i, codim, j, dim ) ];</div>\n-<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> baryCenters_[ codim ][ i ] *= ctype( 1 ) / ctype( numCorners );</div>\n-<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> }</div>\n-<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> }</div>\n-<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> </div>\n-<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"comment\">// compute reference element volume</span></div>\n-<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> volume_ = Impl::template referenceVolume< ctype >( topologyId, dim );</div>\n-<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> </div>\n-<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> <span class=\"comment\">// compute integration outer normals</span></div>\n-<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n-<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> {</div>\n-<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> integrationNormals_.resize( <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( 1 ) );</div>\n-<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> Impl::referenceIntegrationOuterNormals( topologyId, dim, &(integrationNormals_[ 0 ]) );</div>\n-<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> }</div>\n-<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> </div>\n-<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"comment\">// set up geometries</span></div>\n-<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> Hybrid::forEach( std::make_index_sequence< dim+1 >{}, [ & ]( <span class=\"keyword\">auto</span> i ){ CreateGeometries< i >::apply( *<span class=\"keyword\">this</span>, geometries_ ); } );</div>\n-<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> }</div>\n-<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> </div>\n-<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span>... codim ></div>\n-<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> <span class=\"keyword\">static</span> std::tuple< std::vector< typename Codim< codim >::Geometry >... ></div>\n-<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> makeGeometryTable ( std::integer_sequence< int, codim... > );</div>\n-<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> </div>\n-<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">decltype</span>( makeGeometryTable( std::make_integer_sequence< int, dim+1 >() ) ) GeometryTable;</div>\n-<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> </div>\n-<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> ctype volume_;</div>\n-<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> </div>\n-<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> std::vector< Coordinate > baryCenters_[ dim+1 ];</div>\n-<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> std::vector< Coordinate > integrationNormals_;</div>\n-<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> </div>\n-<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span> GeometryTable geometries_;</div>\n-<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> </div>\n-<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> std::vector< SubEntityInfo > info_[ dim+1 ];</div>\n-<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> };</div>\n-<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> </div>\n-<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"> 637</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span> <span class=\"keyword\">struct </span>ReferenceElementImplementation< ctype, dim >::SubEntityInfo</div>\n-<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span> {</div>\n-<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <span class=\"comment\">// Compute upper bound for the number of subsentities.</span></div>\n-<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> <span class=\"comment\">// If someone knows an explicit formal feel free to</span></div>\n-<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"comment\">// implement it here.</span></div>\n-<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t maxSubEntityCount()</div>\n-<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> {</div>\n-<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> std::size_t maxCount=0;</div>\n-<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> <span class=\"keywordflow\">for</span>(std::size_t codim=0; codim<=dim; ++codim)</div>\n-<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> maxCount = std::max(maxCount, binomial(std::size_t(dim),codim)*(1 << codim));</div>\n-<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">return</span> maxCount;</div>\n-<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> }</div>\n-<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> </div>\n-<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> <span class=\"keyword\">using </span>SubEntityFlags = std::bitset<maxSubEntityCount()>;</div>\n-<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> </div>\n-<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> <span class=\"keyword\">class </span>SubEntityRange</div>\n-<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> : <span class=\"keyword\">public</span> Dune::IteratorRange<const unsigned int*></div>\n-<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> {</div>\n-<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> <span class=\"keyword\">using </span>Base = <span class=\"keyword\">typename</span> Dune::IteratorRange<const unsigned int*>;</div>\n-<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> </div>\n-<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> </div>\n-<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> <span class=\"keyword\">using </span>iterator = Base::iterator;</div>\n-<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> <span class=\"keyword\">using </span>const_iterator = Base::const_iterator;</div>\n-<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> </div>\n-<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span> SubEntityRange(<span class=\"keyword\">const</span> iterator& begin, <span class=\"keyword\">const</span> iterator& end, <span class=\"keyword\">const</span> SubEntityFlags& contains) :</div>\n-<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> Base(begin, end),</div>\n-<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span> containsPtr_(&contains),</div>\n-<div class=\"line\"><a id=\"l00666\" name=\"l00666\"></a><span class=\"lineno\"> 666</span> size_(end-begin)</div>\n-<div class=\"line\"><a id=\"l00667\" name=\"l00667\"></a><span class=\"lineno\"> 667</span> {}</div>\n-<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"> 668</span> </div>\n-<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span> SubEntityRange() :</div>\n-<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> Base(),</div>\n-<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> containsPtr_(nullptr),</div>\n-<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> size_(0)</div>\n-<div class=\"line\"><a id=\"l00673\" name=\"l00673\"></a><span class=\"lineno\"> 673</span> {}</div>\n-<div class=\"line\"><a id=\"l00674\" name=\"l00674\"></a><span class=\"lineno\"> 674</span> </div>\n-<div class=\"line\"><a id=\"l00675\" name=\"l00675\"></a><span class=\"lineno\"> 675</span> std::size_t <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00676\" name=\"l00676\"></a><span class=\"lineno\"> 676</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00677\" name=\"l00677\"></a><span class=\"lineno\"> 677</span> <span class=\"keywordflow\">return</span> size_;</div>\n-<div class=\"line\"><a id=\"l00678\" name=\"l00678\"></a><span class=\"lineno\"> 678</span> }</div>\n-<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"> 679</span> </div>\n-<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span> <span class=\"keywordtype\">bool</span> contains(std::size_t i)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> <span class=\"keywordflow\">return</span> (*containsPtr_)[i];</div>\n-<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> }</div>\n-<div class=\"line\"><a id=\"l00684\" name=\"l00684\"></a><span class=\"lineno\"> 684</span> </div>\n-<div class=\"line\"><a id=\"l00685\" name=\"l00685\"></a><span class=\"lineno\"> 685</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00686\" name=\"l00686\"></a><span class=\"lineno\"> 686</span> <span class=\"keyword\">const</span> SubEntityFlags* containsPtr_;</div>\n-<div class=\"line\"><a id=\"l00687\" name=\"l00687\"></a><span class=\"lineno\"> 687</span> std::size_t size_;</div>\n-<div class=\"line\"><a id=\"l00688\" name=\"l00688\"></a><span class=\"lineno\"> 688</span> std::size_t offset_;</div>\n-<div class=\"line\"><a id=\"l00689\" name=\"l00689\"></a><span class=\"lineno\"> 689</span> };</div>\n-<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"> 690</span> </div>\n-<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span> <span class=\"keyword\">using </span>NumberRange = <span class=\"keyword\">typename</span> Dune::IteratorRange<const unsigned int*>;</div>\n-<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> </div>\n-<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> SubEntityInfo ()</div>\n-<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> : numbering_( nullptr )</div>\n-<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"> 695</span> {</div>\n-<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> std::fill( offset_.begin(), offset_.end(), 0 );</div>\n-<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> }</div>\n-<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> </div>\n-<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> SubEntityInfo ( <span class=\"keyword\">const</span> SubEntityInfo &other )</div>\n-<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"> 700</span> : offset_( other.offset_ ),</div>\n-<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> type_( other.type_ ),</div>\n-<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> containsSubentity_( other.containsSubentity_ )</div>\n-<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> {</div>\n-<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> numbering_ = allocate();</div>\n-<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"> 705</span> std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );</div>\n-<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> }</div>\n-<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"> 707</span> </div>\n-<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span> ~SubEntityInfo () { deallocate( numbering_ ); }</div>\n-<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n-<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span> <span class=\"keyword\">const</span> SubEntityInfo &operator= ( <span class=\"keyword\">const</span> SubEntityInfo &other )</div>\n-<div class=\"line\"><a id=\"l00711\" name=\"l00711\"></a><span class=\"lineno\"> 711</span> {</div>\n-<div class=\"line\"><a id=\"l00712\" name=\"l00712\"></a><span class=\"lineno\"> 712</span> type_ = other.type_;</div>\n-<div class=\"line\"><a id=\"l00713\" name=\"l00713\"></a><span class=\"lineno\"> 713</span> offset_ = other.offset_;</div>\n-<div class=\"line\"><a id=\"l00714\" name=\"l00714\"></a><span class=\"lineno\"> 714</span> </div>\n-<div class=\"line\"><a id=\"l00715\" name=\"l00715\"></a><span class=\"lineno\"> 715</span> deallocate( numbering_ );</div>\n-<div class=\"line\"><a id=\"l00716\" name=\"l00716\"></a><span class=\"lineno\"> 716</span> numbering_ = allocate();</div>\n-<div class=\"line\"><a id=\"l00717\" name=\"l00717\"></a><span class=\"lineno\"> 717</span> std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );</div>\n-<div class=\"line\"><a id=\"l00718\" name=\"l00718\"></a><span class=\"lineno\"> 718</span> </div>\n-<div class=\"line\"><a id=\"l00719\" name=\"l00719\"></a><span class=\"lineno\"> 719</span> containsSubentity_ = other.containsSubentity_;</div>\n-<div class=\"line\"><a id=\"l00720\" name=\"l00720\"></a><span class=\"lineno\"> 720</span> </div>\n-<div class=\"line\"><a id=\"l00721\" name=\"l00721\"></a><span class=\"lineno\"> 721</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">this</span>;</div>\n-<div class=\"line\"><a id=\"l00722\" name=\"l00722\"></a><span class=\"lineno\"> 722</span> }</div>\n-<div class=\"line\"><a id=\"l00723\" name=\"l00723\"></a><span class=\"lineno\"> 723</span> </div>\n-<div class=\"line\"><a id=\"l00724\" name=\"l00724\"></a><span class=\"lineno\"> 724</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00725\" name=\"l00725\"></a><span class=\"lineno\"> 725</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00726\" name=\"l00726\"></a><span class=\"lineno\"> 726</span> assert( (cc >= 0) && (cc <= dim) );</div>\n-<div class=\"line\"><a id=\"l00727\" name=\"l00727\"></a><span class=\"lineno\"> 727</span> <span class=\"keywordflow\">return</span> (offset_[ cc+1 ] - offset_[ cc ]);</div>\n-<div class=\"line\"><a id=\"l00728\" name=\"l00728\"></a><span class=\"lineno\"> 728</span> }</div>\n-<div class=\"line\"><a id=\"l00729\" name=\"l00729\"></a><span class=\"lineno\"> 729</span> </div>\n-<div class=\"line\"><a id=\"l00730\" name=\"l00730\"></a><span class=\"lineno\"> 730</span> <span class=\"keywordtype\">int</span> number ( <span class=\"keywordtype\">int</span> ii, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00731\" name=\"l00731\"></a><span class=\"lineno\"> 731</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00732\" name=\"l00732\"></a><span class=\"lineno\"> 732</span> assert( (ii >= 0) && (ii < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( cc )) );</div>\n-<div class=\"line\"><a id=\"l00733\" name=\"l00733\"></a><span class=\"lineno\"> 733</span> <span class=\"keywordflow\">return</span> numbering_[ offset_[ cc ] + ii ];</div>\n-<div class=\"line\"><a id=\"l00734\" name=\"l00734\"></a><span class=\"lineno\"> 734</span> }</div>\n-<div class=\"line\"><a id=\"l00735\" name=\"l00735\"></a><span class=\"lineno\"> 735</span> </div>\n-<div class=\"line\"><a id=\"l00736\" name=\"l00736\"></a><span class=\"lineno\"> 736</span> <span class=\"keyword\">auto</span> numbers ( <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00737\" name=\"l00737\"></a><span class=\"lineno\"> 737</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00738\" name=\"l00738\"></a><span class=\"lineno\"> 738</span> <span class=\"keywordflow\">return</span> SubEntityRange( numbering_ + offset_[ cc ], numbering_ + offset_[ cc+1 ], containsSubentity_[cc]);</div>\n-<div class=\"line\"><a id=\"l00739\" name=\"l00739\"></a><span class=\"lineno\"> 739</span> }</div>\n-<div class=\"line\"><a id=\"l00740\" name=\"l00740\"></a><span class=\"lineno\"> 740</span> </div>\n-<div class=\"line\"><a id=\"l00741\" name=\"l00741\"></a><span class=\"lineno\"> 741</span> <span class=\"keyword\">const</span> GeometryType &type ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> type_; }</div>\n-<div class=\"line\"><a id=\"l00742\" name=\"l00742\"></a><span class=\"lineno\"> 742</span> </div>\n-<div class=\"line\"><a id=\"l00743\" name=\"l00743\"></a><span class=\"lineno\"> 743</span> <span class=\"keywordtype\">void</span> initialize ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i )</div>\n-<div class=\"line\"><a id=\"l00744\" name=\"l00744\"></a><span class=\"lineno\"> 744</span> {</div>\n-<div class=\"line\"><a id=\"l00745\" name=\"l00745\"></a><span class=\"lineno\"> 745</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> subId = Impl::subTopologyId( topologyId, dim, codim, i );</div>\n-<div class=\"line\"><a id=\"l00746\" name=\"l00746\"></a><span class=\"lineno\"> 746</span> type_ = GeometryType( subId, dim-codim );</div>\n-<div class=\"line\"><a id=\"l00747\" name=\"l00747\"></a><span class=\"lineno\"> 747</span> </div>\n-<div class=\"line\"><a id=\"l00748\" name=\"l00748\"></a><span class=\"lineno\"> 748</span> <span class=\"comment\">// compute offsets</span></div>\n-<div class=\"line\"><a id=\"l00749\" name=\"l00749\"></a><span class=\"lineno\"> 749</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = 0; cc <= codim; ++cc )</div>\n-<div class=\"line\"><a id=\"l00750\" name=\"l00750\"></a><span class=\"lineno\"> 750</span> offset_[ cc ] = 0;</div>\n-<div class=\"line\"><a id=\"l00751\" name=\"l00751\"></a><span class=\"lineno\"> 751</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = codim; cc <= dim; ++cc )</div>\n-<div class=\"line\"><a id=\"l00752\" name=\"l00752\"></a><span class=\"lineno\"> 752</span> offset_[ cc+1 ] = offset_[ cc ] + Impl::size( subId, dim-codim, cc-codim );</div>\n-<div class=\"line\"><a id=\"l00753\" name=\"l00753\"></a><span class=\"lineno\"> 753</span> </div>\n-<div class=\"line\"><a id=\"l00754\" name=\"l00754\"></a><span class=\"lineno\"> 754</span> <span class=\"comment\">// compute subnumbering</span></div>\n-<div class=\"line\"><a id=\"l00755\" name=\"l00755\"></a><span class=\"lineno\"> 755</span> deallocate( numbering_ );</div>\n-<div class=\"line\"><a id=\"l00756\" name=\"l00756\"></a><span class=\"lineno\"> 756</span> numbering_ = allocate();</div>\n-<div class=\"line\"><a id=\"l00757\" name=\"l00757\"></a><span class=\"lineno\"> 757</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = codim; cc <= dim; ++cc )</div>\n-<div class=\"line\"><a id=\"l00758\" name=\"l00758\"></a><span class=\"lineno\"> 758</span> Impl::subTopologyNumbering( topologyId, dim, codim, i, cc-codim, numbering_+offset_[ cc ], numbering_+offset_[ cc+1 ] );</div>\n-<div class=\"line\"><a id=\"l00759\" name=\"l00759\"></a><span class=\"lineno\"> 759</span> </div>\n-<div class=\"line\"><a id=\"l00760\" name=\"l00760\"></a><span class=\"lineno\"> 760</span> <span class=\"comment\">// initialize containsSubentity lookup-table</span></div>\n-<div class=\"line\"><a id=\"l00761\" name=\"l00761\"></a><span class=\"lineno\"> 761</span> <span class=\"keywordflow\">for</span>(std::size_t cc=0; cc<= dim; ++cc)</div>\n-<div class=\"line\"><a id=\"l00762\" name=\"l00762\"></a><span class=\"lineno\"> 762</span> {</div>\n-<div class=\"line\"><a id=\"l00763\" name=\"l00763\"></a><span class=\"lineno\"> 763</span> containsSubentity_[cc].reset();</div>\n-<div class=\"line\"><a id=\"l00764\" name=\"l00764\"></a><span class=\"lineno\"> 764</span> <span class=\"keywordflow\">for</span>(std::size_t idx=0; idx<std::size_t(<a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>(cc)); ++idx)</div>\n-<div class=\"line\"><a id=\"l00765\" name=\"l00765\"></a><span class=\"lineno\"> 765</span> containsSubentity_[cc][number(idx,cc)] = <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00766\" name=\"l00766\"></a><span class=\"lineno\"> 766</span> }</div>\n-<div class=\"line\"><a id=\"l00767\" name=\"l00767\"></a><span class=\"lineno\"> 767</span> }</div>\n-<div class=\"line\"><a id=\"l00768\" name=\"l00768\"></a><span class=\"lineno\"> 768</span> </div>\n-<div class=\"line\"><a id=\"l00769\" name=\"l00769\"></a><span class=\"lineno\"> 769</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00770\" name=\"l00770\"></a><span class=\"lineno\"> 770</span> <span class=\"keywordtype\">int</span> codim ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> dim - type().dim(); }</div>\n-<div class=\"line\"><a id=\"l00771\" name=\"l00771\"></a><span class=\"lineno\"> 771</span> </div>\n-<div class=\"line\"><a id=\"l00772\" name=\"l00772\"></a><span class=\"lineno\"> 772</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *allocate () { <span class=\"keywordflow\">return</span> (capacity() != 0 ? <span class=\"keyword\">new</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span>[ capacity() ] : nullptr); }</div>\n-<div class=\"line\"><a id=\"l00773\" name=\"l00773\"></a><span class=\"lineno\"> 773</span> <span class=\"keywordtype\">void</span> deallocate ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *ptr ) { <span class=\"keyword\">delete</span>[] ptr; }</div>\n-<div class=\"line\"><a id=\"l00774\" name=\"l00774\"></a><span class=\"lineno\"> 774</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> capacity ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> offset_[ dim+1 ]; }</div>\n-<div class=\"line\"><a id=\"l00775\" name=\"l00775\"></a><span class=\"lineno\"> 775</span> </div>\n-<div class=\"line\"><a id=\"l00776\" name=\"l00776\"></a><span class=\"lineno\"> 776</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00777\" name=\"l00777\"></a><span class=\"lineno\"> 777</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *numbering_;</div>\n-<div class=\"line\"><a id=\"l00778\" name=\"l00778\"></a><span class=\"lineno\"> 778</span> std::array< unsigned int, dim+2 > offset_;</div>\n-<div class=\"line\"><a id=\"l00779\" name=\"l00779\"></a><span class=\"lineno\"> 779</span> GeometryType type_;</div>\n-<div class=\"line\"><a id=\"l00780\" name=\"l00780\"></a><span class=\"lineno\"> 780</span> std::array< SubEntityFlags, dim+1> containsSubentity_;</div>\n-<div class=\"line\"><a id=\"l00781\" name=\"l00781\"></a><span class=\"lineno\"> 781</span> };</div>\n-<div class=\"line\"><a id=\"l00782\" name=\"l00782\"></a><span class=\"lineno\"> 782</span> </div>\n-<div class=\"line\"><a id=\"l00783\" name=\"l00783\"></a><span class=\"lineno\"> 783</span> </div>\n-<div class=\"line\"><a id=\"l00784\" name=\"l00784\"></a><span class=\"lineno\"> 784</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n-<div class=\"line\"><a id=\"l00785\" name=\"l00785\"></a><span class=\"lineno\"> 785</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n-<div class=\"line\"><a id=\"l00786\" name=\"l00786\"></a><span class=\"lineno\"> 786</span> <span class=\"keyword\">struct </span>ReferenceElementImplementation< ctype, dim >::CreateGeometries</div>\n-<div class=\"line\"><a id=\"l00787\" name=\"l00787\"></a><span class=\"lineno\"> 787</span> {</div>\n-<div class=\"line\"><a id=\"l00788\" name=\"l00788\"></a><span class=\"lineno\"> 788</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> cc ></div>\n-<div class=\"line\"><a id=\"l00789\" name=\"l00789\"></a><span class=\"lineno\"> 789</span> <span class=\"keyword\">static</span> <span class=\"keyword\">typename</span> ReferenceElements< ctype, dim-cc >::ReferenceElement</div>\n-<div class=\"line\"><a id=\"l00790\" name=\"l00790\"></a><span class=\"lineno\"> 790</span> subRefElement( <span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement, <span class=\"keywordtype\">int</span> i, std::integral_constant< int, cc > )</div>\n-<div class=\"line\"><a id=\"l00791\" name=\"l00791\"></a><span class=\"lineno\"> 791</span> {</div>\n-<div class=\"line\"><a id=\"l00792\" name=\"l00792\"></a><span class=\"lineno\"> 792</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01099.html#ab04f646c67b6d08179bccc81a3a90e7a\">ReferenceElements< ctype, dim-cc >::general</a>( refElement.type( i, cc ) );</div>\n-<div class=\"line\"><a id=\"l00793\" name=\"l00793\"></a><span class=\"lineno\"> 793</span> }</div>\n-<div class=\"line\"><a id=\"l00794\" name=\"l00794\"></a><span class=\"lineno\"> 794</span> </div>\n-<div class=\"line\"><a id=\"l00795\" name=\"l00795\"></a><span class=\"lineno\"> 795</span> <span class=\"keyword\">static</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements< ctype, dim >::ReferenceElement</a></div>\n-<div class=\"line\"><a id=\"l00796\" name=\"l00796\"></a><span class=\"lineno\"> 796</span> subRefElement(<span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement,</div>\n-<div class=\"line\"><a id=\"l00797\" name=\"l00797\"></a><span class=\"lineno\"> 797</span> [[maybe_unused]] <span class=\"keywordtype\">int</span> i, std::integral_constant<int, 0>)</div>\n-<div class=\"line\"><a id=\"l00798\" name=\"l00798\"></a><span class=\"lineno\"> 798</span> {</div>\n-<div class=\"line\"><a id=\"l00799\" name=\"l00799\"></a><span class=\"lineno\"> 799</span> <span class=\"keywordflow\">return</span> refElement;</div>\n-<div class=\"line\"><a id=\"l00800\" name=\"l00800\"></a><span class=\"lineno\"> 800</span> }</div>\n-<div class=\"line\"><a id=\"l00801\" name=\"l00801\"></a><span class=\"lineno\"> 801</span> </div>\n-<div class=\"line\"><a id=\"l00802\" name=\"l00802\"></a><span class=\"lineno\"> 802</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> apply ( <span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement, GeometryTable &geometries )</div>\n-<div class=\"line\"><a id=\"l00803\" name=\"l00803\"></a><span class=\"lineno\"> 803</span> {</div>\n-<div class=\"line\"><a id=\"l00804\" name=\"l00804\"></a><span class=\"lineno\"> 804</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> = refElement.size( codim );</div>\n-<div class=\"line\"><a id=\"l00805\" name=\"l00805\"></a><span class=\"lineno\"> 805</span> std::vector< FieldVector< ctype, dim > > origins( size );</div>\n-<div class=\"line\"><a id=\"l00806\" name=\"l00806\"></a><span class=\"lineno\"> 806</span> std::vector< FieldMatrix< ctype, dim - codim, dim > > jacobianTransposeds( size );</div>\n-<div class=\"line\"><a id=\"l00807\" name=\"l00807\"></a><span class=\"lineno\"> 807</span> Impl::referenceEmbeddings( refElement.type().id(), dim, codim, &(origins[ 0 ]), &(jacobianTransposeds[ 0 ]) );</div>\n-<div class=\"line\"><a id=\"l00808\" name=\"l00808\"></a><span class=\"lineno\"> 808</span> </div>\n-<div class=\"line\"><a id=\"l00809\" name=\"l00809\"></a><span class=\"lineno\"> 809</span> std::get< codim >( geometries ).reserve( size );</div>\n-<div class=\"line\"><a id=\"l00810\" name=\"l00810\"></a><span class=\"lineno\"> 810</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>; ++i )</div>\n-<div class=\"line\"><a id=\"l00811\" name=\"l00811\"></a><span class=\"lineno\"> 811</span> {</div>\n-<div class=\"line\"><a id=\"l00812\" name=\"l00812\"></a><span class=\"lineno\"> 812</span> <span class=\"keyword\">typename</span> Codim< codim >::Geometry geometry( subRefElement( refElement, i, std::integral_constant< int, codim >() ), origins[ i ], jacobianTransposeds[ i ] );</div>\n-<div class=\"line\"><a id=\"l00813\" name=\"l00813\"></a><span class=\"lineno\"> 813</span> std::get< codim >( geometries ).push_back( geometry );</div>\n-<div class=\"line\"><a id=\"l00814\" name=\"l00814\"></a><span class=\"lineno\"> 814</span> }</div>\n-<div class=\"line\"><a id=\"l00815\" name=\"l00815\"></a><span class=\"lineno\"> 815</span> }</div>\n-<div class=\"line\"><a id=\"l00816\" name=\"l00816\"></a><span class=\"lineno\"> 816</span> };</div>\n-<div class=\"line\"><a id=\"l00817\" name=\"l00817\"></a><span class=\"lineno\"> 817</span> </div>\n-<div class=\"line\"><a id=\"l00818\" name=\"l00818\"></a><span class=\"lineno\"> 818</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00819\" name=\"l00819\"></a><span class=\"lineno\"> 819</span> </div>\n-<div class=\"line\"><a id=\"l00820\" name=\"l00820\"></a><span class=\"lineno\"> 820</span> } <span class=\"comment\">// namespace Geo</span></div>\n-<div class=\"line\"><a id=\"l00821\" name=\"l00821\"></a><span class=\"lineno\"> 821</span> </div>\n-<div class=\"line\"><a id=\"l00822\" name=\"l00822\"></a><span class=\"lineno\"> 822</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00823\" name=\"l00823\"></a><span class=\"lineno\"> 823</span> </div>\n-<div class=\"line\"><a id=\"l00824\" name=\"l00824\"></a><span class=\"lineno\"> 824</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n-<div class=\"ttc\" id=\"aa00170_html\"><div class=\"ttname\"><a href=\"a00170.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00185_html\"><div class=\"ttname\"><a href=\"a00185.html\">referenceelement.hh</a></div></div>\n+<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n+<div class=\"foldopen\" id=\"foldopen00490\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01207.html\"> 490</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 3> {</div>\n+<div class=\"line\"><a id=\"l00491\" name=\"l00491\"></a><span class=\"lineno\"> 491</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01207.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 492</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 3;</div>\n+<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n+<div class=\"line\"><a id=\"l00494\" name=\"l00494\"></a><span class=\"lineno\"> 494</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> {</div>\n+<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> <span class=\"keywordtype\">unsigned</span> order =</div>\n+<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n+<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n+<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> order = std::max</div>\n+<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(SimplexQuadratureRule<ctype,dim>::highest_order));</div>\n+<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>())</div>\n+<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> order = std::max</div>\n+<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(PrismQuadratureRule<ctype,dim>::highest_order));</div>\n+<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keywordflow\">return</span> order;</div>\n+<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> }</div>\n+<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n+<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> {</div>\n+<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> </div>\n+<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()</div>\n+<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> && ( qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> || qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> )</div>\n+<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> && p <= SimplexQuadratureRule<ctype,dim>::highest_order)</div>\n+<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> {</div>\n+<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> <span class=\"keywordflow\">return</span> SimplexQuadratureRule<ctype,dim>(p);</div>\n+<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> }</div>\n+<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>()</div>\n+<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> && qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a></div>\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> && p <= PrismQuadratureRule<ctype,dim>::highest_order)</div>\n+<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> {</div>\n+<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> <span class=\"keywordflow\">return</span> PrismQuadratureRule<ctype,dim>(p);</div>\n+<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> }</div>\n+<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n+<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"> 522</span> }</div>\n+<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> </div>\n+<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span><span class=\"preprocessor\">#ifndef DUNE_NO_EXTERN_QUADRATURERULES</span></div>\n+<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussLobattoQuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussQuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussRadauLeftQuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussRadauRightQuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>Jacobi1QuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>Jacobi2QuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>JacobiNQuadratureRule<double, 1>;</div>\n+<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>PrismQuadratureRule<double, 3>;</div>\n+<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>SimplexQuadratureRule<double, 2>;</div>\n+<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01187.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 535</a></span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>SimplexQuadratureRule<double, 3>;</div>\n+<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// !DUNE_NO_EXTERN_QUADRATURERULES</span></div>\n+<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> </div>\n+<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span>} <span class=\"comment\">// end namespace</span></div>\n+<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> </div>\n+<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n+<div class=\"ttc\" id=\"aa00221_html\"><div class=\"ttname\"><a href=\"a00221.html\">typeindex.hh</a></div><div class=\"ttdoc\">Helper classes to provide indices for geometrytypes for use in a vector.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">Dune::QuadratureType::size</a></div><div class=\"ttdeci\">@ size</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:194</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_ab04f646c67b6d08179bccc81a3a90e7a\"><div class=\"ttname\"><a href=\"a01099.html#ab04f646c67b6d08179bccc81a3a90e7a\">Dune::Geo::ReferenceElements::general</a></div><div class=\"ttdeci\">static const ReferenceElement & general(const GeometryType &type)</div><div class=\"ttdoc\">get general reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:156</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">Dune::QuadratureType::Enum</a></div><div class=\"ttdeci\">Enum</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:131</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">Dune::QuadratureType::GaussJacobi_n_0</a></div><div class=\"ttdeci\">@ GaussJacobi_n_0</div><div class=\"ttdoc\">Gauss-Legendre rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:168</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">Dune::QuadratureType::GaussJacobi_2_0</a></div><div class=\"ttdeci\">@ GaussJacobi_2_0</div><div class=\"ttdoc\">Gauss-Legendre rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:155</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">Dune::QuadratureType::GaussRadauRight</a></div><div class=\"ttdeci\">@ GaussRadauRight</div><div class=\"ttdoc\">Gauss-Radau rules including the right endpoint.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:193</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">Dune::QuadratureType::GaussJacobi_1_0</a></div><div class=\"ttdeci\">@ GaussJacobi_1_0</div><div class=\"ttdoc\">Gauss-Jacobi rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:148</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">Dune::QuadratureType::GaussLobatto</a></div><div class=\"ttdeci\">@ GaussLobatto</div><div class=\"ttdoc\">Gauss-Lobatto rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:176</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">Dune::QuadratureType::GaussRadauLeft</a></div><div class=\"ttdeci\">@ GaussRadauLeft</div><div class=\"ttdoc\">Gauss-Radau rules including the left endpoint.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:184</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">Dune::QuadratureType::GaussLegendre</a></div><div class=\"ttdeci\">@ GaussLegendre</div><div class=\"ttdoc\">Gauss-Legendre rules (default)</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:141</div></div>\n+<div class=\"ttc\" id=\"aa01163_html\"><div class=\"ttname\"><a href=\"a01163.html\">Dune::QuadraturePoint</a></div><div class=\"ttdoc\">Single evaluation point in a quadrature rule.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:66</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a043b38485b8304aa3c68cdc403d84b04\"><div class=\"ttname\"><a href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\">Dune::QuadraturePoint::position</a></div><div class=\"ttdeci\">const Vector & position() const</div><div class=\"ttdoc\">return local coordinates of integration point i</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:82</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a0a9bc1947b8b5f92f2601198c4a1d50c\"><div class=\"ttname\"><a href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Dune::QuadraturePoint::Vector</a></div><div class=\"ttdeci\">Dune::FieldVector< ct, dim > Vector</div><div class=\"ttdoc\">Type used for the position of a quadrature point.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:75</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a2418b3ae04b2bddea9aedb7a02ae021c\"><div class=\"ttname\"><a href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\">Dune::QuadraturePoint::Field</a></div><div class=\"ttdeci\">ct Field</div><div class=\"ttdoc\">Number type used for coordinates and quadrature weights.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:72</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a3b9d46483531517c25a7702ef3d364bd\"><div class=\"ttname\"><a href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\">Dune::QuadraturePoint::weight</a></div><div class=\"ttdeci\">const ct & weight() const</div><div class=\"ttdoc\">return weight associated with integration point i</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:88</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a7303f1ec5a28181ca5a6c9c245234085\"><div class=\"ttname\"><a href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">Dune::QuadraturePoint::weight_</a></div><div class=\"ttdeci\">ct weight_</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:124</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_a9ad112b8ac0365cdb03be487268d1767\"><div class=\"ttname\"><a href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\">Dune::QuadraturePoint::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdoc\">Dimension of the integration domain.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:69</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_adcb00b146846cd668bea887f139bd1df\"><div class=\"ttname\"><a href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\">Dune::QuadraturePoint::QuadraturePoint</a></div><div class=\"ttdeci\">QuadraturePoint(const Vector &x, ct w)</div><div class=\"ttdoc\">set up quadrature of given order in d dimensions</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:78</div></div>\n+<div class=\"ttc\" id=\"aa01163_html_af12976bae5bb4258c131f4291861d05c\"><div class=\"ttname\"><a href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">Dune::QuadraturePoint::local</a></div><div class=\"ttdeci\">FieldVector< ct, dim > local</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:123</div></div>\n+<div class=\"ttc\" id=\"aa01171_html_ab8051c958c296e06f8cd30ddb8002cea\"><div class=\"ttname\"><a href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > >::type</a></div><div class=\"ttdeci\">Dune::FieldVector< ct, dim > type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:43</div></div>\n+<div class=\"ttc\" id=\"aa01175_html_a6337ec014d58dfb750abb27361a6d230\"><div class=\"ttname\"><a href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > >::type</a></div><div class=\"ttdeci\">ct type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:46</div></div>\n+<div class=\"ttc\" id=\"aa01179_html\"><div class=\"ttname\"><a href=\"a01179.html\">Dune::QuadratureOrderOutOfRange</a></div><div class=\"ttdoc\">Exception thrown if a desired QuadratureRule is not available, because the requested order is to high...</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:55</div></div>\n+<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a0bdd41add8c65028bd4d960c96ee1b3d\"><div class=\"ttname\"><a href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\">Dune::QuadratureRule::~QuadratureRule</a></div><div class=\"ttdeci\">virtual ~QuadratureRule()</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:241</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a307969aef9daf0bcfaefc37ea2931264\"><div class=\"ttname\"><a href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\">Dune::QuadratureRule::type</a></div><div class=\"ttdeci\">virtual GeometryType type() const</div><div class=\"ttdoc\">return type of element</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:240</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a4ca10358838713a19d7749cc9f522d3b\"><div class=\"ttname\"><a href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\">Dune::QuadratureRule::delivered_order</a></div><div class=\"ttdeci\">int delivered_order</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:249</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a4f9beb564cdd030692cccbb18774deea\"><div class=\"ttname\"><a href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule(GeometryType t, int order)</div><div class=\"ttdoc\">Constructor for a given geometry type and a given quadrature order.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:228</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a5df655a6cc6e2f9f8cfa3623efac8c0d\"><div class=\"ttname\"><a href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\">Dune::QuadratureRule::geometry_type</a></div><div class=\"ttdeci\">GeometryType geometry_type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:248</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a6a55ba72302762dd70f1f79b6f578745\"><div class=\"ttname\"><a href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\">Dune::QuadratureRule::CoordType</a></div><div class=\"ttdeci\">ct CoordType</div><div class=\"ttdoc\">The type used for coordinates.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:234</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a6bb7d1e089d72975aad53cbf5033c05f\"><div class=\"ttname\"><a href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule()</div><div class=\"ttdoc\">Default constructor.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:221</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_a9ac3d90d1617988b569493e0c3154d76\"><div class=\"ttname\"><a href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\">Dune::QuadratureRule::order</a></div><div class=\"ttdeci\">virtual int order() const</div><div class=\"ttdoc\">return order</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:237</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_aaf6b6ed40149da8b729d9674d5e89f9c\"><div class=\"ttname\"><a href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule(GeometryType t)</div><div class=\"ttdoc\">Constructor for a given geometry type. Leaves the quadrature order invalid</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:225</div></div>\n+<div class=\"ttc\" id=\"aa01183_html_ac291cc15590f7c07dc3f3e1bd1ccf7be\"><div class=\"ttname\"><a href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\">Dune::QuadratureRule::iterator</a></div><div class=\"ttdeci\">std::vector< QuadraturePoint< ct, dim > >::const_iterator iterator</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:245</div></div>\n+<div class=\"ttc\" id=\"aa01187_html\"><div class=\"ttname\"><a href=\"a01187.html\">Dune::QuadratureRuleFactory</a></div><div class=\"ttdoc\">Factory class for creation of quadrature rules, depending on GeometryType, order and QuadratureType.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:370</div></div>\n+<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n+<div class=\"ttc\" id=\"aa01191_html_a55d090c68f5bff19964b3f79af52f68d\"><div class=\"ttname\"><a href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\">Dune::QuadratureRules::maxOrder</a></div><div class=\"ttdeci\">static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">maximum quadrature order for given geometry type and quadrature type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:319</div></div>\n+<div class=\"ttc\" id=\"aa01191_html_aa879de5d32fbb139873c13c400063a0e\"><div class=\"ttname\"><a href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\">Dune::QuadratureRules::rule</a></div><div class=\"ttdeci\">static const QuadratureRule & rule(const GeometryType::BasicType t, int p, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">select the appropriate QuadratureRule for GeometryType t and order p</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:332</div></div>\n+<div class=\"ttc\" id=\"aa01191_html_ac69416a2180ed4043c457251b8b4eebe\"><div class=\"ttname\"><a href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\">Dune::QuadratureRules::rule</a></div><div class=\"ttdeci\">static const QuadratureRule & rule(const GeometryType &t, int p, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">select the appropriate QuadratureRule for GeometryType t and order p</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:326</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a348e00bac645649b4694a3b03a87b7d8\"><div class=\"ttname\"><a href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">Dune::GeometryType::isPrism</a></div><div class=\"ttdeci\">constexpr bool isPrism() const</div><div class=\"ttdoc\">Return true if entity is a prism.</div><div class=\"ttdef\"><b>Definition</b> type.hh:309</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a3529c9ae0ad0d9fa97c413bfda66851f\"><div class=\"ttname\"><a href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">Dune::GeometryType::isVertex</a></div><div class=\"ttdeci\">constexpr bool isVertex() const</div><div class=\"ttdoc\">Return true if entity is a vertex.</div><div class=\"ttdef\"><b>Definition</b> type.hh:279</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">Dune::GeometryType::BasicType</a></div><div class=\"ttdeci\">BasicType</div><div class=\"ttdoc\">Each entity can be tagged by one of these basic types plus its space dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:120</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ab73476cf45a8608877ddba81c514d294\"><div class=\"ttname\"><a href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">Dune::GeometryType::isLine</a></div><div class=\"ttdeci\">constexpr bool isLine() const</div><div class=\"ttdoc\">Return true if entity is a line segment.</div><div class=\"ttdef\"><b>Definition</b> type.hh:284</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_af04ef531b52014e4e382722b54102163\"><div class=\"ttname\"><a href=\"a01367.html#af04ef531b52014e4e382722b54102163\">Dune::GeometryType::isSimplex</a></div><div class=\"ttdeci\">constexpr bool isSimplex() const</div><div class=\"ttdoc\">Return true if entity is a simplex of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:319</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,767 +1,613 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-referenceelementimplementation.hh\n+quadraturerules.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n-6#define DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n-7\n-8#include <cassert>\n-9\n-10#include <algorithm>\n+5\n+6#ifndef DUNE_GEOMETRY_QUADRATURERULES_HH\n+7#define DUNE_GEOMETRY_QUADRATURERULES_HH\n+8\n+9#include <algorithm>\n+10#include <iostream>\n 11#include <limits>\n-12#include <tuple>\n+12#include <mutex>\n 13#include <utility>\n 14#include <vector>\n-15#include <array>\n-16#include <bitset>\n-17\n-18#include <dune/common/fmatrix.hh>\n-19#include <dune/common/fvector.hh>\n-20#include <dune/common/hybridutilities.hh>\n-21#include <dune/common/typetraits.hh>\n-22#include <dune/common/iteratorrange.hh>\n-23#include <dune/common/math.hh>\n+15\n+16#include <dune/common/fvector.hh>\n+17#include <dune/common/exceptions.hh>\n+18#include <dune/common/stdstreams.hh>\n+19#include <dune/common/stdthread.hh>\n+20#include <dune/common/visibility.hh>\n+21\n+22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n 24\n-25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh>\n-26#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-27#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-28\n-29namespace _\bD_\bu_\bn_\be\n-30{\n-31\n-32 namespace Geo\n-33 {\n-34\n-35#ifndef DOXYGEN\n+31namespace _\bD_\bu_\bn_\be {\n+32 // forward declaration\n+33 template<typename ct, int dim>\n+34 class QuadraturePoint;\n+35}\n 36\n-37 // Internal Forward Declarations\n-38 // -----------------------------\n-39\n-40 namespace Impl\n-41 {\n-42 template< class ctype, int dim >\n-43 class ReferenceElementContainer;\n-44 }\n-45\n-46 template< class ctype, int dim >\n-47 struct ReferenceElements;\n+37// class specialization of standard classes that allow to use structured\n+bindings on QuadraturePoint\n+38namespace _\bs_\bt_\bd {\n+39 template<typename ct, int dim>\n+_\b4_\b0 struct tuple_size<_\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> : public std::\n+integral_constant<std::size_t,2> {};\n+41\n+42 template<typename ct, int dim>\n+_\b4_\b3 struct tuple_element<0, _\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> { using _\bt_\by_\bp_\be = Dune::\n+FieldVector<ct, dim>; };\n+44\n+45 template<typename ct, int dim>\n+_\b4_\b6 struct tuple_element<1, _\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> { using _\bt_\by_\bp_\be = ct; };\n+47}\n 48\n-49\n+49namespace _\bD_\bu_\bn_\be {\n 50\n-51 namespace Impl\n-52 {\n-53\n-54 using Dune::Impl::isPrism;\n-55 using Dune::Impl::isPyramid;\n-56 using Dune::Impl::baseTopologyId;\n-57 using Dune::Impl::prismConstruction;\n-58 using Dune::Impl::pyramidConstruction;\n-59 using Dune::Impl::numTopologies;\n-60\n-62 unsigned int _\bs_\bi_\bz_\be ( unsigned int topologyId, int dim, int codim );\n-63\n-64\n-65\n-73 unsigned int subTopologyId ( unsigned int topologyId, int dim, int codim,\n-unsigned int i );\n-74\n-75\n+_\b5_\b5 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be : public NotImplemented {};\n+56\n+65 template<typename ct, int dim>\n+_\b6_\b6 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt {\n+67 public:\n+_\b6_\b9 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n+70\n+_\b7_\b2 typedef ct _\bF_\bi_\be_\bl_\bd;\n+73\n+_\b7_\b5 typedef Dune::FieldVector<ct,dim> _\bV_\be_\bc_\bt_\bo_\br;\n 76\n-77 // subTopologyNumbering\n-78 // --------------------\n-79\n-80 void subTopologyNumbering ( unsigned int topologyId, int dim, int codim,\n-unsigned int i, int subcodim,\n-81 unsigned int *beginOut, unsigned int *endOut );\n-82\n-83\n-84\n-85\n-86 // checkInside\n-87 // -----------\n-88\n-89 template< class ct, int cdim >\n-90 inline bool\n-91 checkInside ( unsigned int topologyId, int dim, const FieldVector< ct, cdim\n-> &x, ct tolerance, ct factor = ct( 1 ) )\n-92 {\n-93 assert( (dim >= 0) && (dim <= cdim) );\n-94 assert( topologyId < numTopologies( dim ) );\n-95\n-96 if( dim > 0 )\n-97 {\n-98 const ct baseFactor = (isPrism( topologyId, dim ) ? factor : factor - x\n-[ dim-1 ]);\n-99 if( (x[ dim-1 ] > -tolerance) && (factor - x[ dim-1 ] > -tolerance) )\n-100 return checkInside< ct, cdim >( baseTopologyId( topologyId, dim ), dim-1,\n-x, tolerance, baseFactor );\n-101 else\n-102 return false;\n-103 }\n-104 else\n-105 return true;\n-106 }\n-107\n-108\n-109\n-110 // referenceCorners\n-111 // ----------------\n-112\n-113 template< class ct, int cdim >\n-114 inline unsigned int\n-115 referenceCorners ( unsigned int topologyId, int dim, FieldVector< ct, cdim\n-> *corners )\n-116 {\n-117 assert( (dim >= 0) && (dim <= cdim) );\n-118 assert( topologyId < numTopologies( dim ) );\n-119\n-120 if( dim > 0 )\n-121 {\n-122 const unsigned int nBaseCorners\n-123 = referenceCorners( baseTopologyId( topologyId, dim ), dim-1, corners );\n-124 assert( nBaseCorners == _\bs_\bi_\bz_\be( baseTopologyId( topologyId, dim ), dim-1,\n-dim-1 ) );\n-125 if( isPrism( topologyId, dim ) )\n-126 {\n-127 std::copy( corners, corners + nBaseCorners, corners + nBaseCorners );\n-128 for( unsigned int i = 0; i < nBaseCorners; ++i )\n-129 corners[ i+nBaseCorners ][ dim-1 ] = ct( 1 );\n-130 return 2*nBaseCorners;\n-131 }\n-132 else\n-133 {\n-134 corners[ nBaseCorners ] = FieldVector< ct, cdim >( ct( 0 ) );\n-135 corners[ nBaseCorners ][ dim-1 ] = ct( 1 );\n-136 return nBaseCorners+1;\n-137 }\n-138 }\n-139 else\n-140 {\n-141 *corners = FieldVector< ct, cdim >( ct( 0 ) );\n-142 return 1;\n-143 }\n-144 }\n-145\n-146\n-147\n-148 // referenceVolume\n-149 // ---------------\n-150\n-151 unsigned long referenceVolumeInverse ( unsigned int topologyId, int dim );\n-152\n-153 template< class ct >\n-154 inline ct referenceVolume ( unsigned int topologyId, int dim )\n-155 {\n-156 return ct( 1 ) / ct( referenceVolumeInverse( topologyId, dim ) );\n-157 }\n-158\n-159\n-160\n-161 // referenceOrigins\n-162 // ----------------\n-163\n-164 template< class ct, int cdim >\n-165 inline unsigned int\n-166 referenceOrigins ( unsigned int topologyId, int dim, int codim,\n-FieldVector< ct, cdim > *origins )\n-167 {\n-168 assert( (dim >= 0) && (dim <= cdim) );\n-169 assert( topologyId < numTopologies( dim ) );\n-170 assert( (codim >= 0) && (codim <= dim) );\n-171\n-172 if( codim > 0 )\n-173 {\n-174 const unsigned int baseId = baseTopologyId( topologyId, dim );\n-175 if( isPrism( topologyId, dim ) )\n-176 {\n-177 const unsigned int n = (codim < dim ? referenceOrigins( baseId, dim-1,\n-codim, origins ) : 0);\n-178 const unsigned int m = referenceOrigins( baseId, dim-1, codim-1, origins+n\n-);\n-179 for( unsigned int i = 0; i < m; ++i )\n-180 {\n-181 origins[ n+m+i ] = origins[ n+i ];\n-182 origins[ n+m+i ][ dim-1 ] = ct( 1 );\n-183 }\n-184 return n+2*m;\n-185 }\n-186 else\n-187 {\n-188 const unsigned int m = referenceOrigins( baseId, dim-1, codim-1, origins );\n-189 if( codim == dim )\n-190 {\n-191 origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );\n-192 origins[ m ][ dim-1 ] = ct( 1 );\n-193 return m+1;\n-194 }\n-195 else\n-196 return m+referenceOrigins( baseId, dim-1, codim, origins+m );\n-197 }\n-198 }\n-199 else\n-200 {\n-201 origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n-202 return 1;\n-203 }\n-204 }\n-205\n-206\n-207\n-208 // referenceEmbeddings\n-209 // -------------------\n-210\n-211 template< class ct, int cdim, int mydim >\n-212 inline unsigned int\n-213 referenceEmbeddings ( unsigned int topologyId, int dim, int codim,\n-214 FieldVector< ct, cdim > *origins,\n-215 FieldMatrix< ct, mydim, cdim > *jacobianTransposeds )\n-216 {\n-217 assert( (0 <= codim) && (codim <= dim) && (dim <= cdim) );\n-218 assert( (dim - codim <= mydim) && (mydim <= cdim) );\n-219 assert( topologyId < numTopologies( dim ) );\n-220\n-221 if( (0 < codim) && (codim <= dim) )\n-222 {\n-223 const unsigned int baseId = baseTopologyId( topologyId, dim );\n-224 if( isPrism( topologyId, dim ) )\n-225 {\n-226 const unsigned int n = (codim < dim ? referenceEmbeddings( baseId, dim-1,\n-codim, origins, jacobianTransposeds ) : 0);\n-227 for( unsigned int i = 0; i < n; ++i )\n-228 jacobianTransposeds[ i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );\n-229\n-230 const unsigned int m = referenceEmbeddings( baseId, dim-1, codim-1,\n-origins+n, jacobianTransposeds+n );\n-231 std::copy( origins+n, origins+n+m, origins+n+m );\n-232 std::copy( jacobianTransposeds+n, jacobianTransposeds+n+m,\n-jacobianTransposeds+n+m );\n-233 for( unsigned int i = 0; i < m; ++i )\n-234 origins[ n+m+i ][ dim-1 ] = ct( 1 );\n+_\b7_\b8 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt (const _\bV_\be_\bc_\bt_\bo_\br& x, ct w) : _\bl_\bo_\bc_\ba_\bl(x), _\bw_\be_\bi_\bg_\bh_\bt_\b_(w)\n+79 {}\n+80\n+_\b8_\b2 const _\bV_\be_\bc_\bt_\bo_\br& _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn () const\n+83 {\n+84 return _\bl_\bo_\bc_\ba_\bl;\n+85 }\n+86\n+_\b8_\b8 const ct &_\bw_\be_\bi_\bg_\bh_\bt () const\n+89 {\n+90 return _\bw_\be_\bi_\bg_\bh_\bt_\b_;\n+91 }\n+92\n+111 template<std::size_t index, std::enable_if_t<(index<=1), int> = 0>\n+_\b1_\b1_\b2 std::tuple_element_t<index, QuadraturePoint<ct, dim>> get() const\n+113 {\n+114 if constexpr (index == 0) {\n+115 return local;\n+116 }\n+117 else {\n+118 return weight_;\n+119 }\n+120 }\n+121\n+122 protected:\n+_\b1_\b2_\b3 FieldVector<ct, dim> local;\n+_\b1_\b2_\b4 ct weight_;\n+125 };\n+126\n+_\b1_\b3_\b0 namespace QuadratureType {\n+_\b1_\b3_\b1 enum Enum {\n+_\b1_\b4_\b1 GaussLegendre = 0,\n+142\n+_\b1_\b4_\b8 GaussJacobi_1_0 = 1,\n+149\n+_\b1_\b5_\b5 GaussJacobi_2_0 = 2,\n+156\n+_\b1_\b6_\b8 GaussJacobi_n_0 = 3,\n+169\n+_\b1_\b7_\b6 GaussLobatto = 4,\n+177\n+_\b1_\b8_\b4 GaussRadauLeft = 5,\n+185\n+_\b1_\b9_\b3 GaussRadauRight = 6,\n+194 size\n+_\b1_\b9_\b5 };\n+196 }\n+197\n+212 template<typename ct, int dim>\n+_\b2_\b1_\b3 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be : public std::vector<QuadraturePoint<ct,dim> >\n+214 {\n+215 public:\n+_\b2_\b2_\b1 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be() : delivered_order(-1) {}\n+222\n+223 protected:\n+_\b2_\b2_\b5 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be t) : geometry_type(t), delivered_order(-1) {}\n+226\n+_\b2_\b2_\b8 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be t, int order) : geometry_type(t),\n+delivered_order(order) {}\n+229 public:\n+_\b2_\b3_\b1 constexpr static int d = dim;\n+232\n+_\b2_\b3_\b4 typedef ct _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be;\n 235\n-236 return n+2*m;\n-237 }\n-238 else // !isPrism\n-239 {\n-240 const unsigned int m = referenceEmbeddings( baseId, dim-1, codim-1,\n-origins, jacobianTransposeds );\n-241 if( codim == dim )\n-242 {\n-243 origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );\n-244 origins[ m ][ dim-1 ] = ct( 1 );\n-245 jacobianTransposeds[ m ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );\n-246 return m+1;\n-247 }\n-248 else if( codim < dim )\n-249 {\n-250 const unsigned int n = referenceEmbeddings( baseId, dim-1, codim,\n-origins+m, jacobianTransposeds+m );\n-251 for( unsigned int i = 0; i < n; ++i )\n-252 {\n-253 for( int k = 0; k < dim-1; ++k )\n-254 jacobianTransposeds[ m+i ][ dim-codim-1 ][ k ] = -origins[ m+i ][ k ];\n-255 jacobianTransposeds[ m+i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );\n-256 }\n-257 return m+n;\n-258 }\n-259 }\n-260 }\n-261 else if( codim == 0 )\n-262 {\n-263 origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n-264 jacobianTransposeds[ 0 ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );\n-265 for( int k = 0; k < dim; ++k )\n-266 jacobianTransposeds[ 0 ][ k ][ k ] = ct( 1 );\n-267 return 1;\n-268 }\n-269\n-270 // this point should not be reached since all cases are handled before.\n-271 std::abort();\n-272 return 0;\n-273 }\n-274\n-275\n-276\n-277 // referenceIntegrationOuterNormals\n-278 // --------------------------------\n-279\n-280 template< class ct, int cdim >\n-281 inline unsigned int\n-282 referenceIntegrationOuterNormals ( unsigned int topologyId, int dim,\n-283 const FieldVector< ct, cdim > *origins,\n-284 FieldVector< ct, cdim > *normals )\n-285 {\n-286 assert( (dim > 0) && (dim <= cdim) );\n-287 assert( topologyId < numTopologies( dim ) );\n+_\b2_\b3_\b7 virtual int _\bo_\br_\bd_\be_\br () const { return delivered_order; }\n+238\n+_\b2_\b4_\b0 virtual _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const { return geometry_type; }\n+_\b2_\b4_\b1 virtual _\b~_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(){}\n+242\n+_\b2_\b4_\b5 typedef typename std::vector<QuadraturePoint<ct,dim> >::const_iterator\n+_\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n+246\n+247 protected:\n+_\b2_\b4_\b8 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b__\bt_\by_\bp_\be;\n+_\b2_\b4_\b9 int _\bd_\be_\bl_\bi_\bv_\be_\br_\be_\bd_\b__\bo_\br_\bd_\be_\br;\n+250 };\n+251\n+252 // Forward declaration of the factory class,\n+253 // needed internally by the QuadratureRules container class.\n+254 template<typename ctype, int dim> class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by;\n+255\n+259 template<typename ctype, int dim>\n+_\b2_\b6_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs {\n+261\n+263 using _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be = _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b>;\n+264\n+265 // indexed by quadrature order\n+266 using QuadratureOrderVector = std::vector<std::pair<std::once_flag,\n+QuadratureRule> >;\n+267\n+268 // indexed by geometry type\n+269 using GeometryTypeVector = std::vector<std::pair<std::once_flag,\n+QuadratureOrderVector> >;\n+270\n+271 // indexed by quadrature type enum\n+272 using QuadratureCacheVector = std::vector<std::pair<std::once_flag,\n+GeometryTypeVector> >;\n+273\n+275 DUNE_EXPORT const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre) const\n+276 {\n+277 assert(t._\bd_\bi_\bm()==dim);\n+278\n+279 DUNE_ASSERT_CALL_ONCE();\n+280\n+281 static QuadratureCacheVector quadratureCache(QuadratureType::size);\n+282\n+283 auto& [ onceFlagQuadratureType, geometryTypes ] = quadratureCache[qt];\n+284 // initialize geometry types for this quadrature type once\n+285 std::call_once(onceFlagQuadratureType, [&types = geometryTypes]{\n+286 types = GeometryTypeVector(LocalGeometryTypeIndex::size(dim));\n+287 });\n 288\n-289 if( dim > 1 )\n-290 {\n-291 const unsigned int baseId = baseTopologyId( topologyId, dim );\n-292 if( isPrism( topologyId, dim ) )\n-293 {\n-294 const unsigned int numBaseFaces\n-295 = referenceIntegrationOuterNormals( baseId, dim-1, origins, normals );\n+289 auto& [ onceFlagGeometryType, quadratureOrders ] = geometryTypes\n+[LocalGeometryTypeIndex::index(t)];\n+290 // initialize quadrature orders for this geometry type and quadrature type\n+once\n+291 std::call_once(onceFlagGeometryType, [&, &orders = quadratureOrders]{\n+292 // we only need one quadrature rule for points, not maxint\n+293 const auto numRules = dim == 0 ? 1 : _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:\n+_\bm_\ba_\bx_\bO_\br_\bd_\be_\br(t, qt)+1;\n+294 orders = QuadratureOrderVector(numRules);\n+295 });\n 296\n-297 for( unsigned int i = 0; i < 2; ++i )\n-298 {\n-299 normals[ numBaseFaces+i ] = FieldVector< ct, cdim >( ct( 0 ) );\n-300 normals[ numBaseFaces+i ][ dim-1 ] = ct( 2*int( i )-1 );\n-301 }\n-302\n-303 return numBaseFaces+2;\n-304 }\n-305 else\n-306 {\n-307 normals[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n-308 normals[ 0 ][ dim-1 ] = ct( -1 );\n-309\n-310 const unsigned int numBaseFaces\n-311 = referenceIntegrationOuterNormals( baseId, dim-1, origins+1, normals+1 );\n-312 for( unsigned int i = 1; i <= numBaseFaces; ++i )\n-313 normals[ i ][ dim-1 ] = normals[ i ]*origins[ i ];\n-314\n-315 return numBaseFaces+1;\n-316 }\n-317 }\n-318 else\n-319 {\n-320 for( unsigned int i = 0; i < 2; ++i )\n+297 // we only have one quadrature rule for points\n+298 auto& [ onceFlagQuadratureOrder, quadratureRule ] = quadratureOrders[dim ==\n+0 ? 0 : p];\n+299 // initialize quadrature rule once\n+300 std::call_once(onceFlagQuadratureOrder, [&, &rule = quadratureRule]{\n+301 rule = _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:_\br_\bu_\bl_\be(t, p, qt);\n+302 });\n+303\n+304 return quadratureRule;\n+305 }\n+306\n+308 DUNE_EXPORT static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs& instance()\n+309 {\n+310 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs instance;\n+311 return instance;\n+312 }\n+313\n+315 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs () = default;\n+316 public:\n+318 static unsigned\n+_\b3_\b1_\b9 _\bm_\ba_\bx_\bO_\br_\bd_\be_\br(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t,\n+320 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n 321 {\n-322 normals[ i ] = FieldVector< ct, cdim >( ct( 0 ) );\n-323 normals[ i ][ 0 ] = ct( 2*int( i )-1 );\n-324 }\n-325\n-326 return 2;\n-327 }\n-328 }\n-329\n-330 template< class ct, int cdim >\n-331 inline unsigned int\n-332 referenceIntegrationOuterNormals ( unsigned int topologyId, int dim,\n-333 FieldVector< ct, cdim > *normals )\n-334 {\n-335 assert( (dim > 0) && (dim <= cdim) );\n-336\n-337 FieldVector< ct, cdim > *origins\n-338 = new FieldVector< ct, cdim >[ _\bs_\bi_\bz_\be( topologyId, dim, 1 ) ];\n-339 referenceOrigins( topologyId, dim, 1, origins );\n+322 return _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:_\bm_\ba_\bx_\bO_\br_\bd_\be_\br(t,qt);\n+323 }\n+324\n+_\b3_\b2_\b6 static const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _\br_\bu_\bl_\be(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n+327 {\n+328 return instance()._rule(t,p,qt);\n+329 }\n+330\n+_\b3_\b3_\b2 static const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _\br_\bu_\bl_\be(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n+333 {\n+334 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt(t,dim);\n+335 return instance()._rule(gt,p,qt);\n+336 }\n+337 };\n+338\n+339} // end namespace Dune\n 340\n-341 const unsigned int numFaces\n-342 = referenceIntegrationOuterNormals( topologyId, dim, origins, normals );\n-343 assert( numFaces == _\bs_\bi_\bz_\be( topologyId, dim, 1 ) );\n-344\n-345 delete[] origins;\n-346\n-347 return numFaces;\n-348 }\n-349\n-350 } // namespace Impl\n-351\n-352\n-353\n-354 // ReferenceElement\n-355 // ----------------\n-356\n-375 template< class ctype_, int dim >\n-376 class ReferenceElementImplementation\n-377 {\n-378\n-379 public:\n-380\n-382 using ctype = ctype_;\n-383\n-385 using CoordinateField = ctype;\n-386\n-388 using Coordinate = Dune::FieldVector<ctype,dim>;\n-389\n-391 static constexpr int dimension = dim;\n-392\n-394 typedef ctype Volume;\n-395\n-396 private:\n-397\n-398 friend class Impl::ReferenceElementContainer< ctype, dim >;\n-399\n-400 struct SubEntityInfo;\n-401\n-402 template< int codim > struct CreateGeometries;\n-403\n-404 public:\n-406 template< int codim >\n-407 struct Codim\n-408 {\n-410 typedef AffineGeometry< ctype, dim-codim, dim > Geometry;\n-411 };\n-412\n-413 // ReferenceElement cannot be copied.\n-414 ReferenceElementImplementation ( const ReferenceElementImplementation& ) =\n-delete;\n-415\n-416 // ReferenceElementImplementation cannot be copied.\n-417 ReferenceElementImplementation& operator= ( const\n-ReferenceElementImplementation& ) = delete;\n-418\n-419 // ReferenceElementImplementation is default-constructible (required for\n-storage in std::array)\n-420 ReferenceElementImplementation () = default;\n-421\n-426 int _\bs_\bi_\bz_\be ( int c ) const\n-427 {\n-428 assert( (c >= 0) && (c <= dim) );\n-429 return info_[ c ].size();\n-430 }\n-431\n-443 int _\bs_\bi_\bz_\be ( int i, int c, int cc ) const\n-444 {\n-445 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n-446 return info_[ c ][ i ].size( cc );\n-447 }\n-448\n-462 int subEntity ( int i, int c, int ii, int cc ) const\n-463 {\n-464 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n-465 return info_[ c ][ i ].number( ii, cc );\n-466 }\n-467\n-483 auto subEntities ( int i, int c, int cc ) const\n-484 {\n-485 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n-486 return info_[ c ][ i ].numbers( cc );\n-487 }\n+_\b3_\b4_\b1#define DUNE_INCLUDING_IMPLEMENTATION\n+342\n+343// 0d rules\n+344#include \"quadraturerules/pointquadrature.hh\"\n+345// 1d rules\n+346#include \"quadraturerules/gausslobattoquadrature.hh\"\n+347#include \"quadraturerules/gaussquadrature.hh\"\n+348#include \"quadraturerules/gaussradauleftquadrature.hh\"\n+349#include \"quadraturerules/gaussradaurightquadrature.hh\"\n+350#include \"quadraturerules/jacobi1quadrature.hh\"\n+351#include \"quadraturerules/jacobi2quadrature.hh\"\n+352#include \"quadraturerules/jacobiNquadrature.hh\"\n+353// 3d rules\n+354#include \"quadraturerules/prismquadrature.hh\"\n+355// general rules\n+356#include \"quadraturerules/simplexquadrature.hh\"\n+357#include \"quadraturerules/tensorproductquadrature.hh\"\n+358\n+359#undef DUNE_INCLUDING_IMPLEMENTATION\n+360\n+361namespace _\bD_\bu_\bn_\be {\n+362\n+369 template<typename ctype, int dim>\n+_\b3_\b7_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by {\n+371 private:\n+372 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n+373 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+374 {\n+375 return TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n+376 }\n+377 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+378 {\n+379 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n+380 }\n+381 };\n+382\n+383 template<typename ctype>\n+_\b3_\b8_\b4 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 0> {\n+385 private:\n+_\b3_\b8_\b6 constexpr static int dim = 0;\n+387 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n+388 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm)\n+389 {\n+390 if (t._\bi_\bs_\bV_\be_\br_\bt_\be_\bx())\n+391 {\n+392 return std::numeric_limits<int>::max();\n+393 }\n+394 DUNE_THROW(Exception, \"Unknown GeometryType\");\n+395 }\n+396 static QuadratureRule<ctype, dim> rule(const GeometryType& t, int ,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm)\n+397 {\n+398 if (t.isVertex())\n+399 {\n+400 return PointQuadratureRule<ctype>();\n+401 }\n+402 DUNE_THROW(Exception, \"Unknown GeometryType\");\n+403 }\n+404 };\n+405\n+406 template<typename ctype>\n+_\b4_\b0_\b7 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 1> {\n+408 private:\n+_\b4_\b0_\b9 constexpr static int dim = 1;\n+410 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n+411 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+412 {\n+413 if (t._\bi_\bs_\bL_\bi_\bn_\be())\n+414 {\n+415 switch (qt) {\n+416 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be :\n+417 return GaussQuadratureRule1D<ctype>::highest_order;\n+418 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 :\n+419 return Jacobi1QuadratureRule1D<ctype>::highest_order;\n+420 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 :\n+421 return Jacobi2QuadratureRule1D<ctype>::highest_order;\n+422 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo :\n+423 return GaussLobattoQuadratureRule1D<ctype>::highest_order;\n+424 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 :\n+425 return JacobiNQuadratureRule1D<ctype>::maxOrder();\n+426 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt :\n+427 return GaussRadauLeftQuadratureRule1D<ctype>::highest_order;\n+428 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt :\n+429 return GaussRadauRightQuadratureRule1D<ctype>::highest_order;\n+430 default :\n+431 DUNE_THROW(Exception, \"Unknown QuadratureType\");\n+432 }\n+433 }\n+434 DUNE_THROW(Exception, \"Unknown GeometryType\");\n+435 }\n+436 static QuadratureRule<ctype, dim> rule(const GeometryType& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+437 {\n+438 if (t.isLine())\n+439 {\n+440 switch (qt) {\n+441 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be :\n+442 return GaussQuadratureRule1D<ctype>(p);\n+443 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 :\n+444 return Jacobi1QuadratureRule1D<ctype>(p);\n+445 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 :\n+446 return Jacobi2QuadratureRule1D<ctype>(p);\n+447 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo :\n+448 return GaussLobattoQuadratureRule1D<ctype>(p);\n+449 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 :\n+450 return JacobiNQuadratureRule1D<ctype>(p);\n+451 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt :\n+452 return GaussRadauLeftQuadratureRule1D<ctype>(p);\n+453 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt :\n+454 return GaussRadauRightQuadratureRule1D<ctype>(p);\n+455 default :\n+456 DUNE_THROW(Exception, \"Unknown QuadratureType\");\n+457 }\n+458 }\n+459 DUNE_THROW(Exception, \"Unknown GeometryType\");\n+460 }\n+461 };\n+462\n+463 template<typename ctype>\n+_\b4_\b6_\b4 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 2> {\n+465 private:\n+_\b4_\b6_\b6 constexpr static int dim = 2;\n+467 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n+468 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+469 {\n+470 unsigned order =\n+471 TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n+472 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n+473 order = std::max\n+474 (order, static_cast<unsigned>(SimplexQuadratureRule<ctype,dim>::\n+highest_order));\n+475 return order;\n+476 }\n+477 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+478 {\n+479 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx()\n+480 && ( qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be || qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n+_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 )\n+481 && p <= SimplexQuadratureRule<ctype,dim>::highest_order)\n+482 {\n+483 return SimplexQuadratureRule<ctype,dim>(p);\n+484 }\n+485 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n+486 }\n+487 };\n 488\n-497 const GeometryType &type ( int i, int c ) const\n-498 {\n-499 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n-500 return info_[ c ][ i ].type();\n-501 }\n-502\n-504 const GeometryType &type () const { return type( 0, 0 ); }\n-505\n-515 const Coordinate &position( int i, int c ) const\n-516 {\n-517 assert( (c >= 0) && (c <= dim) );\n-518 return baryCenters_[ c ][ i ];\n-519 }\n-520\n-528 bool checkInside ( const Coordinate &local ) const\n-529 {\n-530 const ctype tolerance = ctype( 64 ) * std::numeric_limits< ctype >::epsilon\n-();\n-531 return Impl::template checkInside< ctype, dim >( type().id(), dim, local,\n-tolerance );\n-532 }\n-533\n-545 template< int codim >\n-546 typename Codim< codim >::Geometry geometry ( int i ) const\n-547 {\n-548 return std::get< codim >( geometries_ )[ i ];\n-549 }\n-550\n-552 Volume volume () const\n-553 {\n-554 return volume_;\n-555 }\n-556\n-564 const Coordinate &integrationOuterNormal ( int face ) const\n-565 {\n-566 assert( (face >= 0) && (face < int( integrationNormals_.size() )) );\n-567 return integrationNormals_[ face ];\n-568 }\n-569\n-570 private:\n-571 void initialize ( unsigned int topologyId )\n-572 {\n-573 assert( topologyId < Impl::numTopologies( dim ) );\n-574\n-575 // set up subentities\n-576 for( int codim = 0; codim <= dim; ++codim )\n-577 {\n-578 const unsigned int _\bs_\bi_\bz_\be = Impl::size( topologyId, dim, codim );\n-579 info_[ codim ].resize( size );\n-580 for( unsigned int i = 0; i < _\bs_\bi_\bz_\be; ++i )\n-581 info_[ codim ][ i ].initialize( topologyId, codim, i );\n-582 }\n-583\n-584 // compute corners\n-585 const unsigned int numVertices = _\bs_\bi_\bz_\be( dim );\n-586 baryCenters_[ dim ].resize( numVertices );\n-587 Impl::referenceCorners( topologyId, dim, &(baryCenters_[ dim ][ 0 ]) );\n-588\n-589 // compute barycenters\n-590 for( int codim = 0; codim < dim; ++codim )\n-591 {\n-592 baryCenters_[ codim ].resize( _\bs_\bi_\bz_\be(codim) );\n-593 for( int i = 0; i < _\bs_\bi_\bz_\be( codim ); ++i )\n-594 {\n-595 baryCenters_[ codim ][ i ] = Coordinate( ctype( 0 ) );\n-596 const unsigned int numCorners = _\bs_\bi_\bz_\be( i, codim, dim );\n-597 for( unsigned int j = 0; j < numCorners; ++j )\n-598 baryCenters_[ codim ][ i ] += baryCenters_[ dim ][ subEntity( i, codim, j,\n-dim ) ];\n-599 baryCenters_[ codim ][ i ] *= ctype( 1 ) / ctype( numCorners );\n-600 }\n-601 }\n-602\n-603 // compute reference element volume\n-604 volume_ = Impl::template referenceVolume< ctype >( topologyId, dim );\n-605\n-606 // compute integration outer normals\n-607 if( dim > 0 )\n-608 {\n-609 integrationNormals_.resize( _\bs_\bi_\bz_\be( 1 ) );\n-610 Impl::referenceIntegrationOuterNormals( topologyId, dim, &\n-(integrationNormals_[ 0 ]) );\n-611 }\n-612\n-613 // set up geometries\n-614 Hybrid::forEach( std::make_index_sequence< dim+1 >{}, [ & ]( auto i )\n-{ CreateGeometries< i >::apply( *this, geometries_ ); } );\n-615 }\n-616\n-617 template< int... codim >\n-618 static std::tuple< std::vector< typename Codim< codim >::Geometry >... >\n-619 makeGeometryTable ( std::integer_sequence< int, codim... > );\n-620\n-622 typedef decltype( makeGeometryTable( std::make_integer_sequence< int, dim+1\n->() ) ) GeometryTable;\n-623\n-625 ctype volume_;\n-626\n-627 std::vector< Coordinate > baryCenters_[ dim+1 ];\n-628 std::vector< Coordinate > integrationNormals_;\n-629\n-631 GeometryTable geometries_;\n-632\n-633 std::vector< SubEntityInfo > info_[ dim+1 ];\n-634 };\n-635\n-637 template< class ctype, int dim >\n-638 struct ReferenceElementImplementation< ctype, dim >::SubEntityInfo\n-639 {\n-640 // Compute upper bound for the number of subsentities.\n-641 // If someone knows an explicit formal feel free to\n-642 // implement it here.\n-643 static constexpr std::size_t maxSubEntityCount()\n-644 {\n-645 std::size_t maxCount=0;\n-646 for(std::size_t codim=0; codim<=dim; ++codim)\n-647 maxCount = std::max(maxCount, binomial(std::size_t(dim),codim)*(1 <<\n-codim));\n-648 return maxCount;\n-649 }\n-650\n-651 using SubEntityFlags = std::bitset<maxSubEntityCount()>;\n-652\n-653 class SubEntityRange\n-654 : public Dune::IteratorRange<const unsigned int*>\n-655 {\n-656 using Base = typename Dune::IteratorRange<const unsigned int*>;\n-657\n-658 public:\n-659\n-660 using iterator = Base::iterator;\n-661 using const_iterator = Base::const_iterator;\n-662\n-663 SubEntityRange(const iterator& begin, const iterator& end, const\n-SubEntityFlags& contains) :\n-664 Base(begin, end),\n-665 containsPtr_(&contains),\n-666 size_(end-begin)\n-667 {}\n-668\n-669 SubEntityRange() :\n-670 Base(),\n-671 containsPtr_(nullptr),\n-672 size_(0)\n-673 {}\n-674\n-675 std::size_t _\bs_\bi_\bz_\be() const\n-676 {\n-677 return size_;\n-678 }\n-679\n-680 bool contains(std::size_t i) const\n-681 {\n-682 return (*containsPtr_)[i];\n-683 }\n-684\n-685 private:\n-686 const SubEntityFlags* containsPtr_;\n-687 std::size_t size_;\n-688 std::size_t offset_;\n-689 };\n-690\n-691 using NumberRange = typename Dune::IteratorRange<const unsigned int*>;\n-692\n-693 SubEntityInfo ()\n-694 : numbering_( nullptr )\n-695 {\n-696 std::fill( offset_.begin(), offset_.end(), 0 );\n-697 }\n-698\n-699 SubEntityInfo ( const SubEntityInfo &other )\n-700 : offset_( other.offset_ ),\n-701 type_( other.type_ ),\n-702 containsSubentity_( other.containsSubentity_ )\n-703 {\n-704 numbering_ = allocate();\n-705 std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );\n-706 }\n-707\n-708 ~SubEntityInfo () { deallocate( numbering_ ); }\n-709\n-710 const SubEntityInfo &operator= ( const SubEntityInfo &other )\n-711 {\n-712 type_ = other.type_;\n-713 offset_ = other.offset_;\n-714\n-715 deallocate( numbering_ );\n-716 numbering_ = allocate();\n-717 std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );\n-718\n-719 containsSubentity_ = other.containsSubentity_;\n-720\n-721 return *this;\n-722 }\n-723\n-724 int _\bs_\bi_\bz_\be ( int cc ) const\n-725 {\n-726 assert( (cc >= 0) && (cc <= dim) );\n-727 return (offset_[ cc+1 ] - offset_[ cc ]);\n-728 }\n-729\n-730 int number ( int ii, int cc ) const\n-731 {\n-732 assert( (ii >= 0) && (ii < _\bs_\bi_\bz_\be( cc )) );\n-733 return numbering_[ offset_[ cc ] + ii ];\n-734 }\n-735\n-736 auto numbers ( int cc ) const\n-737 {\n-738 return SubEntityRange( numbering_ + offset_[ cc ], numbering_ + offset_\n-[ cc+1 ], containsSubentity_[cc]);\n-739 }\n-740\n-741 const GeometryType &type () const { return type_; }\n-742\n-743 void initialize ( unsigned int topologyId, int codim, unsigned int i )\n-744 {\n-745 const unsigned int subId = Impl::subTopologyId( topologyId, dim, codim, i\n-);\n-746 type_ = GeometryType( subId, dim-codim );\n-747\n-748 // compute offsets\n-749 for( int cc = 0; cc <= codim; ++cc )\n-750 offset_[ cc ] = 0;\n-751 for( int cc = codim; cc <= dim; ++cc )\n-752 offset_[ cc+1 ] = offset_[ cc ] + Impl::size( subId, dim-codim, cc-codim );\n-753\n-754 // compute subnumbering\n-755 deallocate( numbering_ );\n-756 numbering_ = allocate();\n-757 for( int cc = codim; cc <= dim; ++cc )\n-758 Impl::subTopologyNumbering( topologyId, dim, codim, i, cc-codim,\n-numbering_+offset_[ cc ], numbering_+offset_[ cc+1 ] );\n-759\n-760 // initialize containsSubentity lookup-table\n-761 for(std::size_t cc=0; cc<= dim; ++cc)\n-762 {\n-763 containsSubentity_[cc].reset();\n-764 for(std::size_t idx=0; idx<std::size_t(_\bs_\bi_\bz_\be(cc)); ++idx)\n-765 containsSubentity_[cc][number(idx,cc)] = true;\n-766 }\n-767 }\n-768\n-769 protected:\n-770 int codim () const { return dim - type().dim(); }\n-771\n-772 unsigned int *allocate () { return (capacity() != 0 ? new unsigned int\n-[ capacity() ] : nullptr); }\n-773 void deallocate ( unsigned int *ptr ) { delete[] ptr; }\n-774 unsigned int capacity () const { return offset_[ dim+1 ]; }\n-775\n-776 private:\n-777 unsigned int *numbering_;\n-778 std::array< unsigned int, dim+2 > offset_;\n-779 GeometryType type_;\n-780 std::array< SubEntityFlags, dim+1> containsSubentity_;\n-781 };\n-782\n-783\n-784 template< class ctype, int dim >\n-785 template< int codim >\n-786 struct ReferenceElementImplementation< ctype, dim >::CreateGeometries\n-787 {\n-788 template< int cc >\n-789 static typename ReferenceElements< ctype, dim-cc >::ReferenceElement\n-790 subRefElement( const ReferenceElementImplementation< ctype, dim >\n-&refElement, int i, std::integral_constant< int, cc > )\n-791 {\n-792 return _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b-_\bc_\bc_\b _\b>_\b:_\b:_\bg_\be_\bn_\be_\br_\ba_\bl( refElement.type( i, cc\n-) );\n-793 }\n-794\n-795 static typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-796 subRefElement(const ReferenceElementImplementation< ctype, dim >\n-&refElement,\n-797 [[maybe_unused]] int i, std::integral_constant<int, 0>)\n-798 {\n-799 return refElement;\n-800 }\n-801\n-802 static void apply ( const ReferenceElementImplementation< ctype, dim >\n-&refElement, GeometryTable &geometries )\n-803 {\n-804 const int _\bs_\bi_\bz_\be = refElement.size( codim );\n-805 std::vector< FieldVector< ctype, dim > > origins( size );\n-806 std::vector< FieldMatrix< ctype, dim - codim, dim > > jacobianTransposeds\n-( size );\n-807 Impl::referenceEmbeddings( refElement.type().id(), dim, codim, &(origins[ 0\n-]), &(jacobianTransposeds[ 0 ]) );\n-808\n-809 std::get< codim >( geometries ).reserve( size );\n-810 for( int i = 0; i < _\bs_\bi_\bz_\be; ++i )\n-811 {\n-812 typename Codim< codim >::Geometry geometry( subRefElement( refElement, i,\n-std::integral_constant< int, codim >() ), origins[ i ], jacobianTransposeds[ i\n-] );\n-813 std::get< codim >( geometries ).push_back( geometry );\n-814 }\n-815 }\n-816 };\n-817\n-818#endif // DOXYGEN\n-819\n-820 } // namespace Geo\n-821\n-822} // namespace Dune\n-823\n-824#endif // #ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n-_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n-An implementation of the Geometry interface for affine geometries.\n+489 template<typename ctype>\n+_\b4_\b9_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 3> {\n+491 private:\n+_\b4_\b9_\b2 constexpr static int dim = 3;\n+493 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n+494 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+495 {\n+496 unsigned order =\n+497 TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n+498 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n+499 order = std::max\n+500 (order, static_cast<unsigned>(SimplexQuadratureRule<ctype,dim>::\n+highest_order));\n+501 if (t._\bi_\bs_\bP_\br_\bi_\bs_\bm())\n+502 order = std::max\n+503 (order, static_cast<unsigned>(PrismQuadratureRule<ctype,dim>::\n+highest_order));\n+504 return order;\n+505 }\n+506 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n+_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n+507 {\n+508\n+509 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx()\n+510 && ( qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be || qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n+_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 )\n+511 && p <= SimplexQuadratureRule<ctype,dim>::highest_order)\n+512 {\n+513 return SimplexQuadratureRule<ctype,dim>(p);\n+514 }\n+515 if (t._\bi_\bs_\bP_\br_\bi_\bs_\bm()\n+516 && qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be\n+517 && p <= PrismQuadratureRule<ctype,dim>::highest_order)\n+518 {\n+519 return PrismQuadratureRule<ctype,dim>(p);\n+520 }\n+521 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n+522 }\n+523 };\n+524\n+525#ifndef DUNE_NO_EXTERN_QUADRATURERULES\n+526 extern template class GaussLobattoQuadratureRule<double, 1>;\n+527 extern template class GaussQuadratureRule<double, 1>;\n+528 extern template class GaussRadauLeftQuadratureRule<double, 1>;\n+529 extern template class GaussRadauRightQuadratureRule<double, 1>;\n+530 extern template class Jacobi1QuadratureRule<double, 1>;\n+531 extern template class Jacobi2QuadratureRule<double, 1>;\n+532 extern template class JacobiNQuadratureRule<double, 1>;\n+533 extern template class PrismQuadratureRule<double, 3>;\n+534 extern template class SimplexQuadratureRule<double, 2>;\n+_\b5_\b3_\b5 extern template class SimplexQuadratureRule<double, 3>;\n+536#endif // !DUNE_NO_EXTERN_QUADRATURERULES\n+537\n+538} // end namespace\n+539\n+540#endif // DUNE_GEOMETRY_QUADRATURERULES_HH\n+_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh\n+Helper classes to provide indices for geometrytypes for use in a vector.\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n+_\bs_\bt_\bd\n+STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bz_\be\n-@ size\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:194\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename Container::ReferenceElement ReferenceElement\n-The reference element type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bg_\be_\bn_\be_\br_\ba_\bl\n-static const ReferenceElement & general(const GeometryType &type)\n-get general reference elements\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:156\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm\n+Enum\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:131\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0\n+@ GaussJacobi_n_0\n+Gauss-Legendre rules with .\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:168\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0\n+@ GaussJacobi_2_0\n+Gauss-Legendre rules with .\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:155\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt\n+@ GaussRadauRight\n+Gauss-Radau rules including the right endpoint.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:193\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0\n+@ GaussJacobi_1_0\n+Gauss-Jacobi rules with .\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:148\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo\n+@ GaussLobatto\n+Gauss-Lobatto rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:176\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt\n+@ GaussRadauLeft\n+Gauss-Radau rules including the left endpoint.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:184\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be\n+@ GaussLegendre\n+Gauss-Legendre rules (default)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:141\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt\n+Single evaluation point in a quadrature rule.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:66\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n+const Vector & position() const\n+return local coordinates of integration point i\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:82\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bV_\be_\bc_\bt_\bo_\br\n+Dune::FieldVector< ct, dim > Vector\n+Type used for the position of a quadrature point.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:75\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bF_\bi_\be_\bl_\bd\n+ct Field\n+Number type used for coordinates and quadrature weights.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bw_\be_\bi_\bg_\bh_\bt\n+const ct & weight() const\n+return weight associated with integration point i\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:88\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bw_\be_\bi_\bg_\bh_\bt_\b_\n+ct weight_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:124\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+Dimension of the integration domain.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:69\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt\n+QuadraturePoint(const Vector &x, ct w)\n+set up quadrature of given order in d dimensions\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:78\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n+FieldVector< ct, dim > local\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:123\n+_\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b0_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n+Dune::FieldVector< ct, dim > type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:43\n+_\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b1_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n+ct type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:46\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be\n+Exception thrown if a desired QuadratureRule is not available, because the\n+requested order is to high...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:55\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+Abstract base class for quadrature rules.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\b~_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+virtual ~QuadratureRule()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:241\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bt_\by_\bp_\be\n+virtual GeometryType type() const\n+return type of element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:240\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bd_\be_\bl_\bi_\bv_\be_\br_\be_\bd_\b__\bo_\br_\bd_\be_\br\n+int delivered_order\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:249\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+QuadratureRule(GeometryType t, int order)\n+Constructor for a given geometry type and a given quadrature order.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:228\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b__\bt_\by_\bp_\be\n+GeometryType geometry_type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:248\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be\n+ct CoordType\n+The type used for coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:234\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+QuadratureRule()\n+Default constructor.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:221\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bo_\br_\bd_\be_\br\n+virtual int order() const\n+return order\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:237\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n+QuadratureRule(GeometryType t)\n+Constructor for a given geometry type. Leaves the quadrature order invalid\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:225\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+std::vector< QuadraturePoint< ct, dim > >::const_iterator iterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:245\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by\n+Factory class for creation of quadrature rules, depending on GeometryType,\n+order and QuadratureType.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:370\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n+A container for all quadrature rules of dimension dim\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\bm_\ba_\bx_\bO_\br_\bd_\be_\br\n+static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum\n+qt=QuadratureType::GaussLegendre)\n+maximum quadrature order for given geometry type and quadrature type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:319\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\br_\bu_\bl_\be\n+static const QuadratureRule & rule(const GeometryType::BasicType t, int p,\n+QuadratureType::Enum qt=QuadratureType::GaussLegendre)\n+select the appropriate QuadratureRule for GeometryType t and order p\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:332\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\br_\bu_\bl_\be\n+static const QuadratureRule & rule(const GeometryType &t, int p,\n+QuadratureType::Enum qt=QuadratureType::GaussLegendre)\n+select the appropriate QuadratureRule for GeometryType t and order p\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:326\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm\n+constexpr bool isPrism() const\n+Return true if entity is a prism.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:309\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bV_\be_\br_\bt_\be_\bx\n+constexpr bool isVertex() const\n+Return true if entity is a vertex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:279\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n+constexpr unsigned int dim() const\n+Return dimension of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be\n+BasicType\n+Each entity can be tagged by one of these basic types plus its space dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:120\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bL_\bi_\bn_\be\n+constexpr bool isLine() const\n+Return true if entity is a line segment.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:284\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n+constexpr unsigned int id() const\n+Return the topology id of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx\n+constexpr bool isSimplex() const\n+Return true if entity is a simplex of any dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:319\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00191.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00191.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: axisalignedcubegeometry.hh File Reference</title>\n+<title>dune-geometry: affinegeometry.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -72,42 +72,43 @@\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">axisalignedcubegeometry.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">affinegeometry.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p>A geometry implementation for axis-aligned hypercubes. \n+<p>An implementation of the Geometry interface for affine geometries. \n <a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <bitset></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n+<div class=\"textblock\"><code>#include <cmath></code><br />\n <code>#include <dune/common/fmatrix.hh></code><br />\n-<code>#include <dune/common/diagonalmatrix.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00191_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01111.html\">Dune::AxisAlignedCubeGeometry< CoordType, dim, coorddim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A geometry implementation for axis-aligned hypercubes. <a href=\"a01111.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01107.html\">Dune::AffineGeometry< ct, mydim, cdim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the Geometry interface for affine geometries. <a href=\"a01107.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>A geometry implementation for axis-aligned hypercubes. </p>\n+<div class=\"textblock\"><p>An implementation of the Geometry interface for affine geometries. </p>\n+<dl class=\"section author\"><dt>Author</dt><dd>Martin Nolte </dd></dl>\n </div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,27 +1,29 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n _\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-axisalignedcubegeometry.hh File Reference\n-A geometry implementation for axis-aligned hypercubes. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <bitset>\n-#include <dune/common/fvector.hh>\n+affinegeometry.hh File Reference\n+An implementation of the Geometry interface for affine geometries. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <cmath>\n #include <dune/common/fmatrix.hh>\n-#include <dune/common/diagonalmatrix.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <dune/common/fvector.hh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b,_\b _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\b _\b>\n-\u00a0 A geometry implementation for axis-aligned hypercubes. _\bM_\bo_\br_\be_\b._\b._\b.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bc_\bt_\b,_\b _\bm_\by_\bd_\bi_\bm_\b,_\b _\bc_\bd_\bi_\bm_\b _\b>\n+\u00a0 Implementation of the Geometry interface for affine geometries. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n+\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-A geometry implementation for axis-aligned hypercubes.\n+An implementation of the Geometry interface for affine geometries.\n+ Author\n+ Martin Nolte\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00191_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00191_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: axisalignedcubegeometry.hh Source File</title>\n+<title>dune-geometry: affinegeometry.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,359 +74,705 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">axisalignedcubegeometry.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">affinegeometry.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00191.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH</span></div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <bitset></span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <cmath></span></div>\n <div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/diagonalmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00020\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html\"> 20</a></span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span>{</div>\n <div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> coorddim></div>\n-<div class=\"foldopen\" id=\"foldopen00049\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html\"> 49</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01111.html\">AxisAlignedCubeGeometry</a></div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> {</div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> <span class=\"comment\">// External Forward Declarations</span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> <span class=\"comment\">// -----------------------------</span></div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00264.html\"> 26</a></span> <span class=\"keyword\">namespace </span>Geo</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">typename</span> Implementation ></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>;</div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01095.html\"> 33</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01095.html\">ReferenceElementImplementation</a>;</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>;</div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> </div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> </div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">namespace </span>Impl</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> </div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">// FieldMatrixHelper</span></div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">// -----------------</span></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> </div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct ></div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keyword\">struct </span>FieldMatrixHelper</div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> {</div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"keyword\">typedef</span> ct ctype;</div>\n <div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> </div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\"> 56</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\">mydimension</a> = dim;</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> </div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\"> 59</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\">coorddimension</a> = coorddim;</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\"> 62</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a>;</div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\"> 65</a></span> <span class=\"keyword\">typedef</span> FieldVector<ctype,dim> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>;</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\"> 68</a></span> <span class=\"keyword\">typedef</span> FieldVector<ctype,coorddim> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a>;</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\"> 71</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a>;</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::conditional<dim==coorddim,</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> DiagonalMatrix<ctype,dim>,</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\"> 81</a></span> FieldMatrix<ctype,dim,coorddim> ><a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">::type</a> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a>;</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::conditional<dim==coorddim,</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> DiagonalMatrix<ctype,dim>,</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\"> 91</a></span> FieldMatrix<ctype,coorddim,dim> ><a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">::type</a> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a>;</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\"> 100</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Jacobian</a> = std::conditional_t<dim==coorddim, DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,coorddim,dim> >;</div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> Ax ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, m > &ret )</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> {</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> {</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> ret[ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < n; ++j )</div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> ret[ i ] += A[ i ][ j ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> }</div>\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> }</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> </div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, m > &x, FieldVector< ctype, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> {</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> ret[ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < m; ++j )</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> ret[ i ] += A[ j ][ i ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> }</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> }</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n, <span class=\"keywordtype\">int</span> p ></div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AB ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldMatrix< ctype, n, p > &B, FieldMatrix< ctype, m, p > &ret )</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> {</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> {</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < p; ++j )</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> {</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> ret[ i ][ j ] += A[ i ][ k ] * B[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> }</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> }</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n, <span class=\"keywordtype\">int</span> p ></div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATBT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldMatrix< ctype, p, m > &B, FieldMatrix< ctype, n, p > &ret )</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> {</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < p; ++j )</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> {</div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> ret[ i ][ j ] += A[ k ][ i ] * B[ j ][ k ];</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> }</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> }</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> }</div>\n <div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> </div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\"> 109</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">JacobianInverse</a> = std::conditional_t<dim==coorddim, DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,dim,coorddim> >;</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> </div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\"> 118</a></span> <a class=\"code hl_function\" href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\">AxisAlignedCubeGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\"> 124</a></span> <a class=\"code hl_function\" href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower,</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> upper)</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> : lower_(lower),</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> upper_(upper),</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> axes_()</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> {</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">static_assert</span>(dim==coorddim, <span class=\"stringliteral\">"Use this constructor only if dim==coorddim!"</span>);</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"comment\">// all 'true', but is never actually used</span></div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> axes_ = (1<<coorddim)-1;</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATA_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> {</div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> {</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> {</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> }</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> }</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> </div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> ATA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> {</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> {</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> }</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> ret[ i ][ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < m; ++k )</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> ret[ i ][ i ] += A[ k ][ i ] * A[ k ][ i ];</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> }</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n <div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00142\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\"> 142</a></span> <a class=\"code hl_function\" href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower,</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> upper,</div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">const</span> std::bitset<coorddim>& axes)</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> : lower_(lower),</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> upper_(upper),</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> axes_(axes)</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> {</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> assert(axes.count()==dim);</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">if</span> (not axes_[i])</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> upper_[i] = lower_[i];</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00159\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\"> 159</a></span> <a class=\"code hl_function\" href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower)</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> : lower_(lower)</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00164\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\"> 164</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">type</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordflow\">return</span> GeometryTypes::cube(dim);</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00170\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\"> 170</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> result[i] = lower_[i] + <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>[i]*(upper_[i] - lower_[i]);</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim == 0) { <span class=\"comment\">// a vertex -- the other fast case</span></div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> result = lower_; <span class=\"comment\">// hope for named-return-type-optimization</span></div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> } <span class=\"keywordflow\">else</span> { <span class=\"comment\">// slow case</span></div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordtype\">size_t</span> lc=0;</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> result[i] = (axes_[i])</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> ? lower_[i] + <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>[lc++]*(upper_[i] - lower_[i])</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> : lower_[i];</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> }</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00189\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\"> 189</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a> result;</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> result[i] = (<a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>[i] - lower_[i]) / (upper_[i] - lower_[i]);</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim != 0) { <span class=\"comment\">// slow case</span></div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordtype\">size_t</span> lc=0;</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> result[lc++] = (<a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>[i] - lower_[i]) / (upper_[i] - lower_[i]);</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> }</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00205\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\"> 205</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a> result;</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> </div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"comment\">// Actually compute the result. Uses different methods depending</span></div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"comment\">// on what kind of matrix JacobianTransposed is.</span></div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>(result);</div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AAT_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, m, m > &ret )</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {</div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"comment\">/*</span></div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span><span class=\"comment\"> if (m==2) {</span></div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span><span class=\"comment\"> ret[0][0] = A[0]*A[0];</span></div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span><span class=\"comment\"> ret[1][1] = A[1]*A[1];</span></div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span><span class=\"comment\"> ret[1][0] = A[0]*A[1];</span></div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span><span class=\"comment\"> }</span></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><span class=\"comment\"> else</span></div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span><span class=\"comment\"> */</span></div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> {</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> ctype &retij = ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> retij = A[ i ][ 0 ] * A[ j ][ 0 ];</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 1; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> retij += A[ i ][ k ] * A[ j ][ k ];</div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> }</div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> }</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> }</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> </div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> AAT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, m, m > &ret )</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> {</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> {</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> {</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> ret[ i ][ j ] += A[ i ][ k ] * A[ j ][ k ];</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> }</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> ret[ i ][ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> ret[ i ][ i ] += A[ i ][ k ] * A[ i ][ k ];</div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> }</div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> }</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> </div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> Lx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> {</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> {</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> ret[ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j <= i; ++j )</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> ret[ i ] += L[ i ][ j ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> }</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> }</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> </div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LTx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> {</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> {</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> ret[ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = i; j < n; ++j )</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> ret[ i ] += L[ j ][ i ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> }</div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LTL ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype, n, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> {</div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> {</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> ret[ i ][ j ] += L[ k ][ i ] * L[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> }</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> ret[ i ][ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> ret[ i ][ i ] += L[ k ][ i ] * L[ k ][ i ];</div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> }</div>\n <div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00217\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\"> 217</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a> result;</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> </div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"comment\">// Actually compute the result. Uses different methods depending</span></div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> <span class=\"comment\">// on what kind of matrix JacobianTransposed is.</span></div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>(result);</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> </div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00229\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\"> 229</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Jacobian</a> <a class=\"code hl_function\" href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\">jacobian</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>).transposed();</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> LLT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype, n, n > &ret )</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> {</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> {</div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> {</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> ret[ i ][ j ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k <= j; ++k )</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> ret[ i ][ j ] += L[ i ][ k ] * L[ j ][ k ];</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> ret[ j ][ i ] = ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> }</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> ret[ i ][ i ] = ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k <= i; ++k )</div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> ret[ i ][ i ] += L[ i ][ k ] * L[ i ][ k ];</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> }</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> }</div>\n <div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00235\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\"> 235</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\">jacobianInverse</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>(<a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>).transposed();</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00243\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\"> 243</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a> <a class=\"code hl_function\" href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\">integrationElement</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">volume</a>();</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00249\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\"> 249</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\">center</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> result = lower_;</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keywordflow\">else</span> {</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"comment\">// Since lower_==upper_ for unused coordinates, this always does the right thing</span></div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> result[i] = CoordType(0.5) * (lower_[i] + upper_[i]);</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> }</div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00263\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\"> 263</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\">corners</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">return</span> 1<<dim;</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00269\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\"> 269</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\">corner</a>(<span class=\"keywordtype\">int</span> k)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> result[i] = (k & (1<<i)) ? upper_[i] : lower_[i];</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim == 0) { <span class=\"comment\">// vertex</span></div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> result = lower_; <span class=\"comment\">// rely on named return-type optimization</span></div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> } <span class=\"keywordflow\">else</span> { <span class=\"comment\">// slow case</span></div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> mask = 1;</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> </div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++) {</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keywordflow\">if</span> (not axes_[i])</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> result[i] = lower_[i];</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">else</span> {</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> result[i] = (k & mask) ? upper_[i] : lower_[i];</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> mask = (mask<<1);</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> }</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> }</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> </div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> </div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">return</span> result;</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00295\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\"> 295</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a> <a class=\"code hl_function\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">volume</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a> vol = 1;</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> vol *= upper_[i] - lower_[i];</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"comment\">// do nothing if dim == 0</span></div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim != 0) { <span class=\"comment\">// slow case</span></div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> vol *= upper_[i] - lower_[i];</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> <span class=\"keywordflow\">return</span> vol;</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00311\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af40f429805e6956c2fda18dffc481194\"> 311</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01111.html#af40f429805e6956c2fda18dffc481194\">affine</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00316\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\"> 316</a></span> <span class=\"keyword\">friend</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::ReferenceElements< ctype, dim >::ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\">referenceElement</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01111.html\">AxisAlignedCubeGeometry</a> & <span class=\"comment\">/* geometry */</span> )</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> {</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01099.html#a576e3dc4283b26ac98568f40dfa5e251\">ReferenceElements< ctype, dim >::cube</a>();</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> </div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"comment\">// jacobianTransposed: fast case --> diagonal matrix</span></div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> ( DiagonalMatrix<ctype,dim> &<a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>.diagonal()[i] = upper_[i] - lower_[i];</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> }</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> </div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"comment\">// jacobianTransposed: slow case --> dense matrix</span></div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> ( FieldMatrix<ctype,dim,coorddim> &<a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> <span class=\"keywordflow\">return</span>;</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">size_t</span> lc = 0;</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>[lc++][i] = upper_[i] - lower_[i];</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"comment\">// jacobianInverseTransposed: fast case --> diagonal matrix</span></div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> ( DiagonalMatrix<ctype,dim> &<a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>.diagonal()[i] = CoordType(1.0) / (upper_[i] - lower_[i]);</div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> }</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> </div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"comment\">// jacobianInverseTransposed: slow case --> dense matrix</span></div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> ( FieldMatrix<ctype,coorddim,dim> &<a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> )<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keywordflow\">return</span>;</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> cholesky_L ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &A, FieldMatrix< ctype, n, n > &ret, <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> checkSingular = <span class=\"keyword\">false</span> )</div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> {</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> {</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> ctype &rii = ret[ i ][ i ];</div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> </div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> ctype xDiag = A[ i ][ i ];</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> xDiag -= ret[ i ][ j ] * ret[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> </div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"comment\">// in some cases A can be singular, e.g. when checking local for</span></div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"comment\">// outside points during checkInside</span></div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">if</span>( checkSingular && ! ( xDiag > ctype( 0 )) )</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordflow\">return</span> false ;</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"comment\">// otherwise this should be true always</span></div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> assert( xDiag > ctype( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> rii = sqrt( xDiag );</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> ctype invrii = ctype( 1 ) / rii;</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = i+1; k < n; ++k )</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> {</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> ctype x = A[ k ][ i ];</div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> x -= ret[ i ][ j ] * ret[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> ret[ k ][ i ] = invrii * x;</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> }</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> }</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"comment\">// return true for meaning A is non-singular</span></div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> }</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> </div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> <span class=\"keyword\">static</span> ctype detL ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &L )</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> {</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> ctype det( 1 );</div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> det *= L[ i ][ i ];</div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <span class=\"keywordflow\">return</span> det;</div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> }</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> </div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">static</span> ctype invL ( FieldMatrix< ctype, n, n > &L )</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> {</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> ctype det( 1 );</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> {</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> ctype &lii = L[ i ][ i ];</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> det *= lii;</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> lii = ctype( 1 ) / lii;</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> {</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> ctype &lij = L[ i ][ j ];</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> ctype x = lij * L[ j ][ j ];</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = j+1; k < i; ++k )</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> x += L[ i ][ k ] * L[ k ][ j ];</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> lij = (-lii) * x;</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> }</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> }</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keywordflow\">return</span> det;</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> }</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> </div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"comment\">// calculates x := L^{-1} x</span></div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> invLx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n > &x )</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> {</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> {</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = 0; j < i; ++j )</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> x[ i ] -= L[ i ][ j ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> x[ i ] /= L[ i ][ i ];</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> }</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> </div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"comment\">// calculates x := L^{-T} x</span></div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> invLTx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n > &x )</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> {</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = n; i > 0; --i )</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> {</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> j = i; j < n; ++j )</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> x[ i-1 ] -= L[ j ][ i-1 ] * x[ j ];</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> x[ i-1 ] /= L[ i-1 ][ i-1 ];</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> }</div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> }</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> </div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keyword\">static</span> ctype spdDetA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, n, n > &A )</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> {</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"comment\">// return A[0][0]*A[1][1]-A[1][0]*A[1][0];</span></div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> FieldMatrix< ctype, n, n > L;</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> cholesky_L( A, L );</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> detL( L );</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> <span class=\"keyword\">static</span> ctype spdInvA ( FieldMatrix< ctype, n, n > &A )</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> {</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> FieldMatrix< ctype, n, n > L;</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> cholesky_L( A, L );</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> <span class=\"keyword\">const</span> ctype det = invL( L );</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> LTL( L, A );</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keywordflow\">return</span> det;</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> }</div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> </div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"comment\">// calculate x := A^{-1} x</span></div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> spdInvAx ( FieldMatrix< ctype, n, n > &A, FieldVector< ctype, n > &x, <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> checkSingular = <span class=\"keyword\">false</span> )</div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> {</div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> FieldMatrix< ctype, n, n > L;</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> invertible = cholesky_L( A, L, checkSingular );</div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">if</span>( ! invertible ) <span class=\"keywordflow\">return</span> invertible ;</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> invLx( L, x );</div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> invLTx( L, x );</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">return</span> invertible;</div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> }</div>\n <div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keywordtype\">size_t</span> lc = 0;</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>[i][lc++] = CoordType(1.0) / (upper_[i] - lower_[i]);</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> }</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> Dune::FieldVector<ctype,coorddim> lower_;</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> Dune::FieldVector<ctype,coorddim> upper_;</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> std::bitset<coorddim> axes_;</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> };</div>\n-</div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keyword\">static</span> ctype detATA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A )</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> {</div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <span class=\"keywordflow\">if</span>( m >= n )</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> {</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> FieldMatrix< ctype, n, n > ata;</div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> ATA_L( A, ata );</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> spdDetA( ata );</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keywordflow\">return</span> ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> }</div>\n <div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> </div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> ctype sqrtDetAAT ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A )</div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> {</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">using </span>std::abs;</div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"comment\">// These special cases are here not only for speed reasons:</span></div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"comment\">// The general implementation aborts if the matrix is almost singular,</span></div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"comment\">// and the special implementation provide a stable way to handle that case.</span></div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordflow\">if</span>( (n == 2) && (m == 2) )</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> {</div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"comment\">// Special implementation for 2x2 matrices: faster and more stable</span></div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keywordflow\">return</span> abs( A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ] );</div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> }</div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( (n == 3) && (m == 3) )</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> {</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// Special implementation for 3x3 matrices</span></div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">const</span> ctype v0 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 1 ][ 1 ] * A[ 0 ][ 2 ];</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keyword\">const</span> ctype v1 = A[ 0 ][ 2 ] * A[ 1 ][ 0 ] - A[ 1 ][ 2 ] * A[ 0 ][ 0 ];</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keyword\">const</span> ctype v2 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 1 ][ 0 ] * A[ 0 ][ 1 ];</div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keywordflow\">return</span> abs( v0 * A[ 2 ][ 0 ] + v1 * A[ 2 ][ 1 ] + v2 * A[ 2 ][ 2 ] );</div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> }</div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> ( (n == 3) && (m == 2) )</div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> {</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"comment\">// Special implementation for 2x3 matrices</span></div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">const</span> ctype v0 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 0 ][ 1 ] * A[ 1 ][ 0 ];</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> <span class=\"keyword\">const</span> ctype v1 = A[ 0 ][ 0 ] * A[ 1 ][ 2 ] - A[ 1 ][ 0 ] * A[ 0 ][ 2 ];</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">const</span> ctype v2 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 0 ][ 2 ] * A[ 1 ][ 1 ];</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keywordflow\">return</span> sqrt( v0*v0 + v1*v1 + v2*v2);</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> }</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( n >= m )</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> {</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> <span class=\"comment\">// General case</span></div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> FieldMatrix< ctype, m, m > aat;</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> AAT_L( A, aat );</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keywordflow\">return</span> spdDetA( aat );</div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> }</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> <span class=\"keywordflow\">return</span> ctype( 0 );</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> }</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"comment\">// A^{-1}_L = (A^T A)^{-1} A^T</span></div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"comment\">// => A^{-1}_L A = I</span></div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">static</span> ctype leftInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, m > &ret )</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> {</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keyword\">static_assert</span>((m >= n), <span class=\"stringliteral\">"Matrix has no left inverse."</span>);</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> <span class=\"keyword\">using </span>std::abs;</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>( (n == 2) && (m == 2) )</div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> {</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keyword\">const</span> ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);</div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keyword\">const</span> ctype detInv = ctype( 1 ) / det;</div>\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">return</span> abs( det );</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> }</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> {</div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> FieldMatrix< ctype, n, n > ata;</div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> ATA_L( A, ata );</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> <span class=\"keyword\">const</span> ctype det = spdInvA( ata );</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> ATBT( ata, A, ret );</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> <span class=\"keywordflow\">return</span> det;</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> }</div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> }</div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> </div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> leftInvAx ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, m > &x, FieldVector< ctype, n > &y )</div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> {</div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keyword\">static_assert</span>((m >= n), <span class=\"stringliteral\">"Matrix has no left inverse."</span>);</div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> FieldMatrix< ctype, n, n > ata;</div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> ATx( A, x, y );</div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> ATA_L( A, ata );</div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> spdInvAx( ata, y, <span class=\"keyword\">true</span> );</div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> }</div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keyword\">static</span> ctype rightInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype, n, m > &ret )</div>\n+<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> {</div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keyword\">static_assert</span>((n >= m), <span class=\"stringliteral\">"Matrix has no right inverse."</span>);</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> <span class=\"keyword\">using </span>std::abs;</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>( (n == 2) && (m == 2) )</div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> {</div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> <span class=\"keyword\">const</span> ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);</div>\n+<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> <span class=\"keyword\">const</span> ctype detInv = ctype( 1 ) / det;</div>\n+<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;</div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <span class=\"keywordflow\">return</span> abs( det );</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> }</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> {</div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> FieldMatrix< ctype, m , m > aat;</div>\n+<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> AAT_L( A, aat );</div>\n+<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> <span class=\"keyword\">const</span> ctype det = spdInvA( aat );</div>\n+<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> ATBT( A , aat , ret );</div>\n+<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keywordflow\">return</span> det;</div>\n+<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> }</div>\n+<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> }</div>\n+<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> </div>\n+<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> m, <span class=\"keywordtype\">int</span> n ></div>\n+<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> xTRightInvA ( <span class=\"keyword\">const</span> FieldMatrix< ctype, m, n > &A, <span class=\"keyword\">const</span> FieldVector< ctype, n > &x, FieldVector< ctype, m > &y )</div>\n+<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> {</div>\n+<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> <span class=\"keyword\">static_assert</span>((n >= m), <span class=\"stringliteral\">"Matrix has no right inverse."</span>);</div>\n+<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> FieldMatrix< ctype, m, m > aat;</div>\n+<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> Ax( A, x, y );</div>\n+<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> AAT_L( A, aat );</div>\n+<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> <span class=\"comment\">// check whether aat is singular and return true if non-singular</span></div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keywordflow\">return</span> spdInvAx( aat, y, <span class=\"keyword\">true</span> );</div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> }</div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> };</div>\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> </div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> } <span class=\"comment\">// namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> </div>\n+<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> </div>\n+<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> </div>\n+<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> mydim, <span class=\"keywordtype\">int</span> cdim></div>\n+<div class=\"foldopen\" id=\"foldopen00497\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html\"> 497</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a></div>\n+<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> {</div>\n+<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> </div>\n+<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\"> 502</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a>;</div>\n+<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span> </div>\n+<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\"> 505</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a>= mydim;</div>\n+<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> </div>\n+<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\"> 508</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\">coorddimension</a> = cdim;</div>\n+<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> </div>\n+<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\"> 511</a></span> <span class=\"keyword\">typedef</span> FieldVector< ctype, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a>;</div>\n+<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> </div>\n+<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\"> 514</a></span> <span class=\"keyword\">typedef</span> FieldVector< ctype, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a>;</div>\n+<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> </div>\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a542de56631f87d4e016369badf355329\"> 517</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> <a class=\"code hl_typedef\" href=\"a01107.html#a542de56631f87d4e016369badf355329\">Volume</a>;</div>\n+<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> </div>\n+<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\"> 520</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, mydimension, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a>;</div>\n+<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> </div>\n+<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\"> 523</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, coorddimension, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a>;</div>\n+<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> </div>\n+<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\"> 526</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, coorddimension, mydimension > <a class=\"code hl_typedef\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Jacobian</a>;</div>\n+<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> </div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\"> 529</a></span> <span class=\"keyword\">typedef</span> FieldMatrix< ctype, mydimension, coorddimension > <a class=\"code hl_typedef\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">JacobianInverse</a>;</div>\n+<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> </div>\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement< Geo::ReferenceElementImplementation< ctype, mydimension ></a> > <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>;</div>\n+<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> </div>\n+<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01099.html\">Geo::ReferenceElements< ctype, mydimension ></a> <a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>;</div>\n+<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> </div>\n+<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">// Helper class to compute a matrix pseudo inverse</span></div>\n+<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keyword\">typedef</span> Impl::FieldMatrixHelper< ct > MatrixHelper;</div>\n+<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> </div>\n+<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\"> 547</a></span> <a class=\"code hl_function\" href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\">AffineGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00550\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\"> 550</a></span> <a class=\"code hl_function\" href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\">AffineGeometry</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> &refElement, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &origin,</div>\n+<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &jt )</div>\n+<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> : refElement_(refElement), origin_(origin), jacobianTransposed_(jt)</div>\n+<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> {</div>\n+<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );</div>\n+<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00558\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\"> 558</a></span> <a class=\"code hl_function\" href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\">AffineGeometry</a> ( <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &origin,</div>\n+<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &jt )</div>\n+<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> : <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general( gt ), origin, jt)</div>\n+<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> { }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> </div>\n+<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> CoordVector ></div>\n+<div class=\"foldopen\" id=\"foldopen00565\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\"> 565</a></span> <a class=\"code hl_function\" href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\">AffineGeometry</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> &refElement, <span class=\"keyword\">const</span> CoordVector &coordVector )</div>\n+<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> : refElement_(refElement), origin_(coordVector[0])</div>\n+<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> {</div>\n+<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a>; ++i )</div>\n+<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;</div>\n+<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );</div>\n+<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> </div>\n+<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> CoordVector ></div>\n+<div class=\"foldopen\" id=\"foldopen00575\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\"> 575</a></span> <a class=\"code hl_function\" href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\">AffineGeometry</a> ( <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> gt, <span class=\"keyword\">const</span> CoordVector &coordVector )</div>\n+<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> : <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general( gt ), coordVector)</div>\n+<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> { }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> </div>\n+<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\"> 580</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\">affine</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>; }</div>\n+<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> </div>\n+<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\"> 583</a></span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> <a class=\"code hl_function\" href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\">type</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> refElement_.<a class=\"code hl_function\" href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">type</a>(); }</div>\n+<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> </div>\n+<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\"> 586</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\">corners</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> refElement_.<a class=\"code hl_function\" href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">size</a>( <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a> ); }</div>\n+<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00589\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\"> 589</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\">corner</a> ( <span class=\"keywordtype\">int</span> i )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( refElement_.<a class=\"code hl_function\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">position</a>( i, <a class=\"code hl_variable\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a> ) );</div>\n+<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> </div>\n+<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\"> 595</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\">center</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( refElement_.<a class=\"code hl_function\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">position</a>( 0, 0 ) ); }</div>\n+<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00603\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\"> 603</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>( origin_ );</div>\n+<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> jacobianTransposed_.umtv( <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>, <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> );</div>\n+<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a>;</div>\n+<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00623\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\"> 623</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>;</div>\n+<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> jacobianInverseTransposed_.mtv( <a class=\"code hl_function\" href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">global</a> - origin_, <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a> );</div>\n+<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>;</div>\n+<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00640\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\"> 640</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> <a class=\"code hl_function\" href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\">integrationElement</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"keywordflow\">return</span> integrationElement_;</div>\n+<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00646\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\"> 646</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a542de56631f87d4e016369badf355329\">Volume</a> <a class=\"code hl_function\" href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\">volume</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">return</span> integrationElement_ * refElement_.<a class=\"code hl_function\" href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">volume</a>();</div>\n+<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00657\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\"> 657</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> &<a class=\"code hl_function\" href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\">jacobianTransposed</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> <span class=\"keywordflow\">return</span> jacobianTransposed_;</div>\n+<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00668\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\"> 668</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a> &<a class=\"code hl_function\" href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\">jacobianInverseTransposed</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> <span class=\"keywordflow\">return</span> jacobianInverseTransposed_;</div>\n+<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00679\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\"> 679</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Jacobian</a> <a class=\"code hl_function\" href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\">jacobian</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span> <span class=\"keywordflow\">return</span> jacobianTransposed_.transposed();</div>\n+<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00690\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\"> 690</a></span> <a class=\"code hl_typedef\" href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\">jacobianInverse</a> ([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a> &<a class=\"code hl_function\" href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> <span class=\"keywordflow\">return</span> jacobianInverseTransposed_.transposed();</div>\n+<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00695\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\"> 695</a></span> <span class=\"keyword\">friend</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\">referenceElement</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01107.html\">AffineGeometry</a> &geometry )</div>\n+<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> {</div>\n+<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> <span class=\"keywordflow\">return</span> geometry.refElement_;</div>\n+<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> </div>\n+<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"> 700</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> <a class=\"code hl_typedef\" href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">ReferenceElement</a> refElement_;</div>\n+<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> <a class=\"code hl_typedef\" href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">GlobalCoordinate</a> origin_;</div>\n+<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> <a class=\"code hl_typedef\" href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">JacobianTransposed</a> jacobianTransposed_;</div>\n+<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> <a class=\"code hl_typedef\" href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">JacobianInverseTransposed</a> jacobianInverseTransposed_;</div>\n+<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"> 705</span> <a class=\"code hl_typedef\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a> integrationElement_;</div>\n+<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"> 707</span> </div>\n+<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span>} <span class=\"comment\">// namespace Dune</span></div>\n+</div>\n+<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n+<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH</span></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a576e3dc4283b26ac98568f40dfa5e251\"><div class=\"ttname\"><a href=\"a01099.html#a576e3dc4283b26ac98568f40dfa5e251\">Dune::Geo::ReferenceElements::cube</a></div><div class=\"ttdeci\">static const ReferenceElement & cube()</div><div class=\"ttdoc\">get hypercube reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:168</div></div>\n-<div class=\"ttc\" id=\"aa01111_html\"><div class=\"ttname\"><a href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:50</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a061a90cc51269ef4e8a274a5d90142d2\"><div class=\"ttname\"><a href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">Dune::AxisAlignedCubeGeometry::volume</a></div><div class=\"ttdeci\">Volume volume() const</div><div class=\"ttdoc\">Return the element volume.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:295</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a0ac822ada6e30c08cddc4ed4e110a63d\"><div class=\"ttname\"><a href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const Dune::FieldVector< ctype, coorddim > upper, const std::bitset< coorddim > &axes)</div><div class=\"ttdoc\">Constructor from a lower left and an upper right corner.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:142</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a0c3fe3e4049f882dc1b0f6e371bbee29\"><div class=\"ttname\"><a href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const Dune::FieldVector< ctype, coorddim > upper)</div><div class=\"ttdoc\">Constructor from a lower left and an upper right corner.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:124</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a0fbd63f126a4cc5d7d26218935ba726f\"><div class=\"ttname\"><a href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\">Dune::AxisAlignedCubeGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Inverse Jacobian of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:235</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a11491f8e9577b986eaa71c8a20082c00\"><div class=\"ttname\"><a href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">Dune::AxisAlignedCubeGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Inverse Jacobian transposed of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:217</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a11d736f6306e3bd0fa63673e5537bffa\"><div class=\"ttname\"><a href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">Dune::AxisAlignedCubeGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, dim, coorddim > >::type JacobianTransposed</div><div class=\"ttdoc\">Return type of jacobianTransposed.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:81</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a17b0b0e087ef3f35e29895309b28db95\"><div class=\"ttname\"><a href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower)</div><div class=\"ttdoc\">Constructor from a single point only.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:159</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a1b50bd298dc8fef30918ddf4feec2a44\"><div class=\"ttname\"><a href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\">Dune::AxisAlignedCubeGeometry::mydimension</a></div><div class=\"ttdeci\">static constexpr int mydimension</div><div class=\"ttdoc\">Dimension of the cube element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:56</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a1ebe13a94b0f3b53ee6bbfc46a7e37d7\"><div class=\"ttname\"><a href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\">Dune::AxisAlignedCubeGeometry::referenceElement</a></div><div class=\"ttdeci\">friend Dune::ReferenceElements< ctype, dim >::ReferenceElement referenceElement(const AxisAlignedCubeGeometry &)</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:316</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a2051b5fe381448aabaa2ca3f26a4963b\"><div class=\"ttname\"><a href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\">Dune::AxisAlignedCubeGeometry::coorddimension</a></div><div class=\"ttdeci\">static constexpr int coorddimension</div><div class=\"ttdoc\">Dimension of the world space that the cube element is embedded in.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:59</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a33df6a4b1c8e398863d63aa52e920962\"><div class=\"ttname\"><a href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\">Dune::AxisAlignedCubeGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int k) const</div><div class=\"ttdoc\">Return world coordinates of the k-th corner of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:269</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a36fc1d628b0b0dd16aa01312ee5062e5\"><div class=\"ttname\"><a href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Dune::AxisAlignedCubeGeometry::Volume</a></div><div class=\"ttdeci\">ctype Volume</div><div class=\"ttdoc\">Type used for volume.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:71</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a3cc835b7d048ee36b8a82c76f7831b84\"><div class=\"ttname\"><a href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">Dune::AxisAlignedCubeGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, dim > LocalCoordinate</div><div class=\"ttdoc\">Type used for a vector of element coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:65</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a61bdb36ecf5c1256cdb15492a7506d1c\"><div class=\"ttname\"><a href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">Dune::AxisAlignedCubeGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Jacobian transposed of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:205</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a71d098bffa1d31ab450bd91720753d80\"><div class=\"ttname\"><a href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">Dune::AxisAlignedCubeGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddim > GlobalCoordinate</div><div class=\"ttdoc\">Type used for a vector of world coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:68</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a779ee40aa6b43ea76bdca292992fede4\"><div class=\"ttname\"><a href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">Dune::AxisAlignedCubeGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &global) const</div><div class=\"ttdoc\">Map a point in global (world) coordinates to element coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:189</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a81c4e2db01fa9110b7589ddcbcba56fe\"><div class=\"ttname\"><a href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">Dune::AxisAlignedCubeGeometry::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdoc\">Type used for single coordinate coefficients.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:62</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a8241c6c1f582dde442c237871da547ef\"><div class=\"ttname\"><a href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Dune::AxisAlignedCubeGeometry::Jacobian</a></div><div class=\"ttdeci\">std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, coorddim, dim > > Jacobian</div><div class=\"ttdoc\">Return type of jacobian.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:100</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_a9f91116563201a48bf040fb3e9093bb6\"><div class=\"ttname\"><a href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">Dune::AxisAlignedCubeGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Type of the cube. Here: a hypercube of the correct dimension.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:164</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_aa0a26765c66a38cfead97e97255b62e5\"><div class=\"ttname\"><a href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\">Dune::AxisAlignedCubeGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Return the number of corners of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:263</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_aaddc10afb21b0feb576ee9219bd4f6c6\"><div class=\"ttname\"><a href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\">Dune::AxisAlignedCubeGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Jacobian of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:229</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_ac3a46cf157c0d70f505d4bde85468969\"><div class=\"ttname\"><a href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">Dune::AxisAlignedCubeGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, coorddim, dim > >::type JacobianInverseTransposed</div><div class=\"ttdoc\">Return type of jacobianInverseTransposed.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:91</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_acc494552b84107e253ff14843a9c65d5\"><div class=\"ttname\"><a href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\">Dune::AxisAlignedCubeGeometry::integrationElement</a></div><div class=\"ttdeci\">Volume integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Return the integration element, i.e., the determinant term in the integral transformation formula.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:243</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_ad957bd96f44fc2bdcc923816087a88a5\"><div class=\"ttname\"><a href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\">Dune::AxisAlignedCubeGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Return center of mass of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:249</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_adbd6925ff25642f14c68020c3b15532b\"><div class=\"ttname\"><a href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry()=default</div><div class=\"ttdoc\">Constructs an empty geometry.</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_af40f429805e6956c2fda18dffc481194\"><div class=\"ttname\"><a href=\"a01111.html#af40f429805e6956c2fda18dffc481194\">Dune::AxisAlignedCubeGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Return if the element is affine. Here: yes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:311</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_af6175b1cae3c6c713aad600ad604e65c\"><div class=\"ttname\"><a href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">Dune::AxisAlignedCubeGeometry::JacobianInverse</a></div><div class=\"ttdeci\">std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, dim, coorddim > > JacobianInverse</div><div class=\"ttdoc\">Return type of jacobianInverse.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:109</div></div>\n-<div class=\"ttc\" id=\"aa01111_html_af8b73bc9c38c47e185a2d0a1e0c666a7\"><div class=\"ttname\"><a href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">Dune::AxisAlignedCubeGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Map a point in local (element) coordinates to world coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:170</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a1cdbc7bdf778b00fdacba9b2e0efe8ee\"><div class=\"ttname\"><a href=\"a00263.html#a1cdbc7bdf778b00fdacba9b2e0efe8ee\">Dune::ReferenceElement</a></div><div class=\"ttdeci\">decltype(referenceElement(std::declval< T >()...)) ReferenceElement</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:347</div></div>\n+<div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a0afe55b1551e04497fb74a301ace4e77\"><div class=\"ttname\"><a href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">Dune::Geo::ReferenceElement::volume</a></div><div class=\"ttdeci\">CoordinateField volume() const</div><div class=\"ttdoc\">obtain the volume of the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:228</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a1b7089a178a3be8143e8bdd8fd5a4e95\"><div class=\"ttname\"><a href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">Dune::Geo::ReferenceElement::type</a></div><div class=\"ttdeci\">GeometryType type(int i, int c) const</div><div class=\"ttdoc\">obtain the type of subentity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:167</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a3ac0e9ef3e02ac3e752e4a0c36e1b709\"><div class=\"ttname\"><a href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">Dune::Geo::ReferenceElement::position</a></div><div class=\"ttdeci\">Coordinate position(int i, int c) const</div><div class=\"ttdoc\">position of the barycenter of entity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:190</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a5b7bed3b1102a6ea1ce66ab57a477ee8\"><div class=\"ttname\"><a href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">Dune::Geo::ReferenceElement::size</a></div><div class=\"ttdeci\">int size(int c) const</div><div class=\"ttdoc\">number of subentities of codimension c</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:94</div></div>\n+<div class=\"ttc\" id=\"aa01095_html\"><div class=\"ttname\"><a href=\"a01095.html\">Dune::Geo::ReferenceElementImplementation</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:33</div></div>\n+<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n+<div class=\"ttc\" id=\"aa01107_html\"><div class=\"ttname\"><a href=\"a01107.html\">Dune::AffineGeometry</a></div><div class=\"ttdoc\">Implementation of the Geometry interface for affine geometries.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:498</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a2379307a10ddb1b40f0eface881517bf\"><div class=\"ttname\"><a href=\"a01107.html#a2379307a10ddb1b40f0eface881517bf\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(const ReferenceElement &refElement, const CoordVector &coordVector)</div><div class=\"ttdoc\">Create affine geometry from reference element and a vector of vertex coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:565</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a300d5536b3780fd43df7e39cc100e9ff\"><div class=\"ttname\"><a href=\"a01107.html#a300d5536b3780fd43df7e39cc100e9ff\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry()=default</div><div class=\"ttdoc\">Constructs an empty geometry.</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a32c977f3a7c2dd5070e767619b518607\"><div class=\"ttname\"><a href=\"a01107.html#a32c977f3a7c2dd5070e767619b518607\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(Dune::GeometryType gt, const GlobalCoordinate &origin, const JacobianTransposed &jt)</div><div class=\"ttdoc\">Create affine geometry from GeometryType, one vertex, and the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:558</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a3c1b10f3f337e38e6ec273d21110c7cb\"><div class=\"ttname\"><a href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">Dune::AffineGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, mydimension > LocalCoordinate</div><div class=\"ttdoc\">Type for local coordinate vector.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:511</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a4cc327eee3513d2ceab37c9fc4048a8b\"><div class=\"ttname\"><a href=\"a01107.html#a4cc327eee3513d2ceab37c9fc4048a8b\">Dune::AffineGeometry::type</a></div><div class=\"ttdeci\">Dune::GeometryType type() const</div><div class=\"ttdoc\">Obtain the type of the reference element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:583</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a4eacf4f1784f7b2627cd14dbf8fbe231\"><div class=\"ttname\"><a href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">Dune::AffineGeometry::mydimension</a></div><div class=\"ttdeci\">static const int mydimension</div><div class=\"ttdoc\">Dimension of the geometry.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:505</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a517c28647866fe3fde69bdf24ecc25cd\"><div class=\"ttname\"><a href=\"a01107.html#a517c28647866fe3fde69bdf24ecc25cd\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(const ReferenceElement &refElement, const GlobalCoordinate &origin, const JacobianTransposed &jt)</div><div class=\"ttdoc\">Create affine geometry from reference element, one vertex, and the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:550</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a542de56631f87d4e016369badf355329\"><div class=\"ttname\"><a href=\"a01107.html#a542de56631f87d4e016369badf355329\">Dune::AffineGeometry::Volume</a></div><div class=\"ttdeci\">ctype Volume</div><div class=\"ttdoc\">Type used for volume.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:517</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a6106ef075be62916c4d9c6d8d0bd78cb\"><div class=\"ttname\"><a href=\"a01107.html#a6106ef075be62916c4d9c6d8d0bd78cb\">Dune::AffineGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:690</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a75e66e07e40a59fabd7e54932d0f0245\"><div class=\"ttname\"><a href=\"a01107.html#a75e66e07e40a59fabd7e54932d0f0245\">Dune::AffineGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const AffineGeometry &geometry)</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:695</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a75fcaa352bf967d07951047f603a5478\"><div class=\"ttname\"><a href=\"a01107.html#a75fcaa352bf967d07951047f603a5478\">Dune::AffineGeometry::AffineGeometry</a></div><div class=\"ttdeci\">AffineGeometry(Dune::GeometryType gt, const CoordVector &coordVector)</div><div class=\"ttdoc\">Create affine geometry from GeometryType and a vector of vertex coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:575</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a796b87d2b330c8ec652f96a1d2d1e699\"><div class=\"ttname\"><a href=\"a01107.html#a796b87d2b330c8ec652f96a1d2d1e699\">Dune::AffineGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:640</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a8028ee26f70a50057c3dd86079966d74\"><div class=\"ttname\"><a href=\"a01107.html#a8028ee26f70a50057c3dd86079966d74\">Dune::AffineGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">Type for the inverse Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:529</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a81f54b3ba4fa127af7b336e5219a6f1b\"><div class=\"ttname\"><a href=\"a01107.html#a81f54b3ba4fa127af7b336e5219a6f1b\">Dune::AffineGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">Type for the Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:526</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a829a0230c79cf10d4921c9e76f02152b\"><div class=\"ttname\"><a href=\"a01107.html#a829a0230c79cf10d4921c9e76f02152b\">Dune::AffineGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">const JacobianInverseTransposed & jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:668</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a871e21712b26315eee177c3e1fd0ea8b\"><div class=\"ttname\"><a href=\"a01107.html#a871e21712b26315eee177c3e1fd0ea8b\">Dune::AffineGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">Type for the transposed Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:520</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a98dc47bc662d6756ebc29a15dc950265\"><div class=\"ttname\"><a href=\"a01107.html#a98dc47bc662d6756ebc29a15dc950265\">Dune::AffineGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:589</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a9ae3daf323aa148d3012e6f874edf5fb\"><div class=\"ttname\"><a href=\"a01107.html#a9ae3daf323aa148d3012e6f874edf5fb\">Dune::AffineGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:586</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a9ef871bafa45ff201be09e1233351f7d\"><div class=\"ttname\"><a href=\"a01107.html#a9ef871bafa45ff201be09e1233351f7d\">Dune::AffineGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &global) const</div><div class=\"ttdoc\">Evaluate the inverse mapping.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:623</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_a9fd4659006e684aecaa8c377b786f49d\"><div class=\"ttname\"><a href=\"a01107.html#a9fd4659006e684aecaa8c377b786f49d\">Dune::AffineGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">Type for the transposed inverse Jacobian matrix.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:523</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_aa916060fcce63de6b9ebc9ef8e119ff1\"><div class=\"ttname\"><a href=\"a01107.html#aa916060fcce63de6b9ebc9ef8e119ff1\">Dune::AffineGeometry::coorddimension</a></div><div class=\"ttdeci\">static const int coorddimension</div><div class=\"ttdoc\">Dimension of the world space.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:508</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ab02786260c6683043bdd2abbfa3b38d0\"><div class=\"ttname\"><a href=\"a01107.html#ab02786260c6683043bdd2abbfa3b38d0\">Dune::AffineGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the mapping.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:603</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ab12c72bfe3706eb3a59d2da456072e7a\"><div class=\"ttname\"><a href=\"a01107.html#ab12c72bfe3706eb3a59d2da456072e7a\">Dune::AffineGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Obtain the centroid of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:595</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ab6541ba558e3f83cf97d7c9144868c85\"><div class=\"ttname\"><a href=\"a01107.html#ab6541ba558e3f83cf97d7c9144868c85\">Dune::AffineGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:679</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ab8847944e2ea7863aaa8b776731c2081\"><div class=\"ttname\"><a href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">Dune::AffineGeometry::ctype</a></div><div class=\"ttdeci\">ct ctype</div><div class=\"ttdoc\">Type used for coordinates.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:502</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ace950095803d35bb31d0737147be2cb4\"><div class=\"ttname\"><a href=\"a01107.html#ace950095803d35bb31d0737147be2cb4\">Dune::AffineGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddimension > GlobalCoordinate</div><div class=\"ttdoc\">Type for coordinate vector in world space.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:514</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ae84f12a62f95e74294a512e5fc79fd91\"><div class=\"ttname\"><a href=\"a01107.html#ae84f12a62f95e74294a512e5fc79fd91\">Dune::AffineGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Always true: this is an affine geometry.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:580</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_ae884dc0b944ffb5ecd968f1a47b92ba9\"><div class=\"ttname\"><a href=\"a01107.html#ae884dc0b944ffb5ecd968f1a47b92ba9\">Dune::AffineGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">const JacobianTransposed & jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:657</div></div>\n+<div class=\"ttc\" id=\"aa01107_html_af88eeea1893866eb58454d3f69da1e2b\"><div class=\"ttname\"><a href=\"a01107.html#af88eeea1893866eb58454d3f69da1e2b\">Dune::AffineGeometry::volume</a></div><div class=\"ttdeci\">Volume volume() const</div><div class=\"ttdoc\">Obtain the volume of the element.</div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:646</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,438 +1,816 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-axisalignedcubegeometry.hh\n+affinegeometry.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5\n-6#ifndef DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH\n-7#define DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH\n-8\n-13#include <bitset>\n+5#ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n+6#define DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n+7\n+13#include <cmath>\n 14\n-15#include <dune/common/fvector.hh>\n-16#include <dune/common/fmatrix.hh>\n-17#include <dune/common/diagonalmatrix.hh>\n-18\n-19#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-21\n+15#include <dune/common/fmatrix.hh>\n+16#include <dune/common/fvector.hh>\n+17\n+18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+19\n+_\b2_\b0namespace _\bD_\bu_\bn_\be\n+21{\n 22\n-23namespace _\bD_\bu_\bn_\be {\n-24\n-48 template <class CoordType, unsigned int dim, unsigned int coorddim>\n-_\b4_\b9 class _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-50 {\n+23 // External Forward Declarations\n+24 // -----------------------------\n+25\n+_\b2_\b6 namespace Geo\n+27 {\n+28\n+29 template< typename Implementation >\n+30 class _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n+31\n+32 template< class ctype, int dim >\n+_\b3_\b3 class _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn;\n+34\n+35 template< class ctype, int dim >\n+36 struct _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs;\n+37\n+38 }\n+39\n+40\n+41 namespace Impl\n+42 {\n+43\n+44 // FieldMatrixHelper\n+45 // -----------------\n+46\n+47 template< class ct >\n+48 struct FieldMatrixHelper\n+49 {\n+50 typedef ct ctype;\n 51\n-52\n-53 public:\n-54\n-_\b5_\b6 constexpr static int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n-57\n-_\b5_\b9 constexpr static int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = coorddim;\n-60\n-_\b6_\b2 typedef CoordType _\bc_\bt_\by_\bp_\be;\n-63\n-_\b6_\b5 typedef FieldVector<ctype,dim> _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n-66\n-_\b6_\b8 typedef FieldVector<ctype,coorddim> _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n-69\n-_\b7_\b1 typedef _\bc_\bt_\by_\bp_\be _\bV_\bo_\bl_\bu_\bm_\be;\n-72\n-79 typedef typename std::conditional<dim==coorddim,\n-80 DiagonalMatrix<ctype,dim>,\n-_\b8_\b1 FieldMatrix<ctype,dim,coorddim> >_\b:_\b:_\bt_\by_\bp_\be _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n-82\n-89 typedef typename std::conditional<dim==coorddim,\n-90 DiagonalMatrix<ctype,dim>,\n-_\b9_\b1 FieldMatrix<ctype,coorddim,dim> >_\b:_\b:_\bt_\by_\bp_\be _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n-92\n-_\b1_\b0_\b0 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = std::conditional_t<dim==coorddim,\n-DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,coorddim,dim> >;\n+52 template< int m, int n >\n+53 static void Ax ( const FieldMatrix< ctype, m, n > &A, const FieldVector<\n+ctype, n > &x, FieldVector< ctype, m > &ret )\n+54 {\n+55 for( int i = 0; i < m; ++i )\n+56 {\n+57 ret[ i ] = ctype( 0 );\n+58 for( int j = 0; j < n; ++j )\n+59 ret[ i ] += A[ i ][ j ] * x[ j ];\n+60 }\n+61 }\n+62\n+63 template< int m, int n >\n+64 static void ATx ( const FieldMatrix< ctype, m, n > &A, const FieldVector<\n+ctype, m > &x, FieldVector< ctype, n > &ret )\n+65 {\n+66 for( int i = 0; i < n; ++i )\n+67 {\n+68 ret[ i ] = ctype( 0 );\n+69 for( int j = 0; j < m; ++j )\n+70 ret[ i ] += A[ j ][ i ] * x[ j ];\n+71 }\n+72 }\n+73\n+74 template< int m, int n, int p >\n+75 static void AB ( const FieldMatrix< ctype, m, n > &A, const FieldMatrix<\n+ctype, n, p > &B, FieldMatrix< ctype, m, p > &ret )\n+76 {\n+77 for( int i = 0; i < m; ++i )\n+78 {\n+79 for( int j = 0; j < p; ++j )\n+80 {\n+81 ret[ i ][ j ] = ctype( 0 );\n+82 for( int k = 0; k < n; ++k )\n+83 ret[ i ][ j ] += A[ i ][ k ] * B[ k ][ j ];\n+84 }\n+85 }\n+86 }\n+87\n+88 template< int m, int n, int p >\n+89 static void ATBT ( const FieldMatrix< ctype, m, n > &A, const FieldMatrix<\n+ctype, p, m > &B, FieldMatrix< ctype, n, p > &ret )\n+90 {\n+91 for( int i = 0; i < n; ++i )\n+92 {\n+93 for( int j = 0; j < p; ++j )\n+94 {\n+95 ret[ i ][ j ] = ctype( 0 );\n+96 for( int k = 0; k < m; ++k )\n+97 ret[ i ][ j ] += A[ k ][ i ] * B[ j ][ k ];\n+98 }\n+99 }\n+100 }\n 101\n-_\b1_\b0_\b9 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = std::conditional_t<dim==coorddim,\n-DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,dim,coorddim> >;\n-110\n-_\b1_\b1_\b8 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n-119\n-_\b1_\b2_\b4 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower,\n-125 const Dune::FieldVector<ctype,coorddim> upper)\n-126 : lower_(lower),\n-127 upper_(upper),\n-128 axes_()\n-129 {\n-130 static_assert(dim==coorddim, \"Use this constructor only if\n-dim==coorddim!\");\n-131 // all 'true', but is never actually used\n-132 axes_ = (1<<coorddim)-1;\n+102 template< int m, int n >\n+103 static void ATA_L ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n+ctype, n, n > &ret )\n+104 {\n+105 for( int i = 0; i < n; ++i )\n+106 {\n+107 for( int j = 0; j <= i; ++j )\n+108 {\n+109 ret[ i ][ j ] = ctype( 0 );\n+110 for( int k = 0; k < m; ++k )\n+111 ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];\n+112 }\n+113 }\n+114 }\n+115\n+116 template< int m, int n >\n+117 static void ATA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype,\n+n, n > &ret )\n+118 {\n+119 for( int i = 0; i < n; ++i )\n+120 {\n+121 for( int j = 0; j <= i; ++j )\n+122 {\n+123 ret[ i ][ j ] = ctype( 0 );\n+124 for( int k = 0; k < m; ++k )\n+125 ret[ i ][ j ] += A[ k ][ i ] * A[ k ][ j ];\n+126 ret[ j ][ i ] = ret[ i ][ j ];\n+127 }\n+128\n+129 ret[ i ][ i ] = ctype( 0 );\n+130 for( int k = 0; k < m; ++k )\n+131 ret[ i ][ i ] += A[ k ][ i ] * A[ k ][ i ];\n+132 }\n 133 }\n 134\n-_\b1_\b4_\b2 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower,\n-143 const Dune::FieldVector<ctype,coorddim> upper,\n-144 const std::bitset<coorddim>& axes)\n-145 : lower_(lower),\n-146 upper_(upper),\n-147 axes_(axes)\n-148 {\n-149 assert(axes.count()==dim);\n-150 for (size_t i=0; i<coorddim; i++)\n-151 if (not axes_[i])\n-152 upper_[i] = lower_[i];\n-153 }\n-154\n-_\b1_\b5_\b9 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower)\n-160 : lower_(lower)\n-161 {}\n-162\n-_\b1_\b6_\b4 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be() const\n-165 {\n-166 return GeometryTypes::cube(dim);\n-167 }\n-168\n-_\b1_\b7_\b0 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl(const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-171 {\n-172 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n-173 if (dim == coorddim) { // fast case\n-174 for (size_t i=0; i<coorddim; i++)\n-175 result[i] = lower_[i] + _\bl_\bo_\bc_\ba_\bl[i]*(upper_[i] - lower_[i]);\n-176 } else if (dim == 0) { // a vertex -- the other fast case\n-177 result = lower_; // hope for named-return-type-optimization\n-178 } else { // slow case\n-179 size_t lc=0;\n-180 for (size_t i=0; i<coorddim; i++)\n-181 result[i] = (axes_[i])\n-182 ? lower_[i] + _\bl_\bo_\bc_\ba_\bl[lc++]*(upper_[i] - lower_[i])\n-183 : lower_[i];\n+135 template< int m, int n >\n+136 static void AAT_L ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n+ctype, m, m > &ret )\n+137 {\n+138 /*\n+139 if (m==2) {\n+140 ret[0][0] = A[0]*A[0];\n+141 ret[1][1] = A[1]*A[1];\n+142 ret[1][0] = A[0]*A[1];\n+143 }\n+144 else\n+145 */\n+146 for( int i = 0; i < m; ++i )\n+147 {\n+148 for( int j = 0; j <= i; ++j )\n+149 {\n+150 ctype &retij = ret[ i ][ j ];\n+151 retij = A[ i ][ 0 ] * A[ j ][ 0 ];\n+152 for( int k = 1; k < n; ++k )\n+153 retij += A[ i ][ k ] * A[ j ][ k ];\n+154 }\n+155 }\n+156 }\n+157\n+158 template< int m, int n >\n+159 static void AAT ( const FieldMatrix< ctype, m, n > &A, FieldMatrix< ctype,\n+m, m > &ret )\n+160 {\n+161 for( int i = 0; i < m; ++i )\n+162 {\n+163 for( int j = 0; j < i; ++j )\n+164 {\n+165 ret[ i ][ j ] = ctype( 0 );\n+166 for( int k = 0; k < n; ++k )\n+167 ret[ i ][ j ] += A[ i ][ k ] * A[ j ][ k ];\n+168 ret[ j ][ i ] = ret[ i ][ j ];\n+169 }\n+170 ret[ i ][ i ] = ctype( 0 );\n+171 for( int k = 0; k < n; ++k )\n+172 ret[ i ][ i ] += A[ i ][ k ] * A[ i ][ k ];\n+173 }\n+174 }\n+175\n+176 template< int n >\n+177 static void Lx ( const FieldMatrix< ctype, n, n > &L, const FieldVector<\n+ctype, n > &x, FieldVector< ctype, n > &ret )\n+178 {\n+179 for( int i = 0; i < n; ++i )\n+180 {\n+181 ret[ i ] = ctype( 0 );\n+182 for( int j = 0; j <= i; ++j )\n+183 ret[ i ] += L[ i ][ j ] * x[ j ];\n 184 }\n-185 return result;\n-186 }\n-187\n-_\b1_\b8_\b9 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl(const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bg_\bl_\bo_\bb_\ba_\bl) const\n-190 {\n-191 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n-192 if (dim == coorddim) { // fast case\n-193 for (size_t i=0; i<dim; i++)\n-194 result[i] = (_\bg_\bl_\bo_\bb_\ba_\bl[i] - lower_[i]) / (upper_[i] - lower_[i]);\n-195 } else if (dim != 0) { // slow case\n-196 size_t lc=0;\n-197 for (size_t i=0; i<coorddim; i++)\n-198 if (axes_[i])\n-199 result[lc++] = (_\bg_\bl_\bo_\bb_\ba_\bl[i] - lower_[i]) / (upper_[i] - lower_[i]);\n-200 }\n-201 return result;\n-202 }\n-203\n-_\b2_\b0_\b5 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd([[maybe_unused]] const\n-_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-206 {\n-207 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd result;\n-208\n-209 // Actually compute the result. Uses different methods depending\n-210 // on what kind of matrix JacobianTransposed is.\n-211 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(result);\n-212\n-213 return result;\n+185 }\n+186\n+187 template< int n >\n+188 static void LTx ( const FieldMatrix< ctype, n, n > &L, const FieldVector<\n+ctype, n > &x, FieldVector< ctype, n > &ret )\n+189 {\n+190 for( int i = 0; i < n; ++i )\n+191 {\n+192 ret[ i ] = ctype( 0 );\n+193 for( int j = i; j < n; ++j )\n+194 ret[ i ] += L[ j ][ i ] * x[ j ];\n+195 }\n+196 }\n+197\n+198 template< int n >\n+199 static void LTL ( const FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype,\n+n, n > &ret )\n+200 {\n+201 for( int i = 0; i < n; ++i )\n+202 {\n+203 for( int j = 0; j < i; ++j )\n+204 {\n+205 ret[ i ][ j ] = ctype( 0 );\n+206 for( int k = i; k < n; ++k )\n+207 ret[ i ][ j ] += L[ k ][ i ] * L[ k ][ j ];\n+208 ret[ j ][ i ] = ret[ i ][ j ];\n+209 }\n+210 ret[ i ][ i ] = ctype( 0 );\n+211 for( int k = i; k < n; ++k )\n+212 ret[ i ][ i ] += L[ k ][ i ] * L[ k ][ i ];\n+213 }\n 214 }\n 215\n-_\b2_\b1_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd([[maybe_unused]] const\n-_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+216 template< int n >\n+217 static void LLT ( const FieldMatrix< ctype, n, n > &L, FieldMatrix< ctype,\n+n, n > &ret )\n 218 {\n-219 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd result;\n-220\n-221 // Actually compute the result. Uses different methods depending\n-222 // on what kind of matrix JacobianTransposed is.\n-223 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(result);\n-224\n-225 return result;\n-226 }\n-227\n-_\b2_\b2_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-230 {\n-231 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl).transposed();\n+219 for( int i = 0; i < n; ++i )\n+220 {\n+221 for( int j = 0; j < i; ++j )\n+222 {\n+223 ret[ i ][ j ] = ctype( 0 );\n+224 for( int k = 0; k <= j; ++k )\n+225 ret[ i ][ j ] += L[ i ][ k ] * L[ j ][ k ];\n+226 ret[ j ][ i ] = ret[ i ][ j ];\n+227 }\n+228 ret[ i ][ i ] = ctype( 0 );\n+229 for( int k = 0; k <= i; ++k )\n+230 ret[ i ][ i ] += L[ i ][ k ] * L[ i ][ k ];\n+231 }\n 232 }\n 233\n-_\b2_\b3_\b5 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n-_\bl_\bo_\bc_\ba_\bl) const\n+234 template< int n >\n+235 static bool cholesky_L ( const FieldMatrix< ctype, n, n > &A, FieldMatrix<\n+ctype, n, n > &ret, const bool checkSingular = false )\n 236 {\n-237 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl).transposed();\n-238 }\n-239\n-_\b2_\b4_\b3 _\bV_\bo_\bl_\bu_\bm_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl)\n-const\n-244 {\n-245 return _\bv_\bo_\bl_\bu_\bm_\be();\n-246 }\n-247\n-_\b2_\b4_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br() const\n-250 {\n-251 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n-252 if (dim==0)\n-253 result = lower_;\n-254 else {\n-255 // Since lower_==upper_ for unused coordinates, this always does the right\n-thing\n-256 for (size_t i=0; i<coorddim; i++)\n-257 result[i] = CoordType(0.5) * (lower_[i] + upper_[i]);\n-258 }\n-259 return result;\n-260 }\n-261\n-_\b2_\b6_\b3 int _\bc_\bo_\br_\bn_\be_\br_\bs() const\n-264 {\n-265 return 1<<dim;\n-266 }\n-267\n-_\b2_\b6_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br(int k) const\n-270 {\n-271 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n-272 if (dim == coorddim) { // fast case\n-273 for (size_t i=0; i<coorddim; i++)\n-274 result[i] = (k & (1<<i)) ? upper_[i] : lower_[i];\n-275 } else if (dim == 0) { // vertex\n-276 result = lower_; // rely on named return-type optimization\n-277 } else { // slow case\n-278 unsigned int mask = 1;\n-279\n-280 for (size_t i=0; i<coorddim; i++) {\n-281 if (not axes_[i])\n-282 result[i] = lower_[i];\n-283 else {\n-284 result[i] = (k & mask) ? upper_[i] : lower_[i];\n-285 mask = (mask<<1);\n-286 }\n-287 }\n-288 }\n-289\n-290\n-291 return result;\n-292 }\n-293\n-_\b2_\b9_\b5 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be() const\n-296 {\n-297 _\bc_\bt_\by_\bp_\be vol = 1;\n-298 if (dim == coorddim) { // fast case\n-299 for (size_t i=0; i<dim; i++)\n-300 vol *= upper_[i] - lower_[i];\n-301 // do nothing if dim == 0\n-302 } else if (dim != 0) { // slow case\n-303 for (size_t i=0; i<coorddim; i++)\n-304 if (axes_[i])\n-305 vol *= upper_[i] - lower_[i];\n-306 }\n-307 return vol;\n+237 using std::sqrt;\n+238 for( int i = 0; i < n; ++i )\n+239 {\n+240 ctype &rii = ret[ i ][ i ];\n+241\n+242 ctype xDiag = A[ i ][ i ];\n+243 for( int j = 0; j < i; ++j )\n+244 xDiag -= ret[ i ][ j ] * ret[ i ][ j ];\n+245\n+246 // in some cases A can be singular, e.g. when checking local for\n+247 // outside points during checkInside\n+248 if( checkSingular && ! ( xDiag > ctype( 0 )) )\n+249 return false ;\n+250\n+251 // otherwise this should be true always\n+252 assert( xDiag > ctype( 0 ) );\n+253 rii = sqrt( xDiag );\n+254\n+255 ctype invrii = ctype( 1 ) / rii;\n+256 for( int k = i+1; k < n; ++k )\n+257 {\n+258 ctype x = A[ k ][ i ];\n+259 for( int j = 0; j < i; ++j )\n+260 x -= ret[ i ][ j ] * ret[ k ][ j ];\n+261 ret[ k ][ i ] = invrii * x;\n+262 }\n+263 }\n+264\n+265 // return true for meaning A is non-singular\n+266 return true;\n+267 }\n+268\n+269 template< int n >\n+270 static ctype detL ( const FieldMatrix< ctype, n, n > &L )\n+271 {\n+272 ctype det( 1 );\n+273 for( int i = 0; i < n; ++i )\n+274 det *= L[ i ][ i ];\n+275 return det;\n+276 }\n+277\n+278 template< int n >\n+279 static ctype invL ( FieldMatrix< ctype, n, n > &L )\n+280 {\n+281 ctype det( 1 );\n+282 for( int i = 0; i < n; ++i )\n+283 {\n+284 ctype &lii = L[ i ][ i ];\n+285 det *= lii;\n+286 lii = ctype( 1 ) / lii;\n+287 for( int j = 0; j < i; ++j )\n+288 {\n+289 ctype &lij = L[ i ][ j ];\n+290 ctype x = lij * L[ j ][ j ];\n+291 for( int k = j+1; k < i; ++k )\n+292 x += L[ i ][ k ] * L[ k ][ j ];\n+293 lij = (-lii) * x;\n+294 }\n+295 }\n+296 return det;\n+297 }\n+298\n+299 // calculates x := L^{-1} x\n+300 template< int n >\n+301 static void invLx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n >\n+&x )\n+302 {\n+303 for( int i = 0; i < n; ++i )\n+304 {\n+305 for( int j = 0; j < i; ++j )\n+306 x[ i ] -= L[ i ][ j ] * x[ j ];\n+307 x[ i ] /= L[ i ][ i ];\n 308 }\n-309\n-_\b3_\b1_\b1 bool _\ba_\bf_\bf_\bi_\bn_\be() const\n-312 {\n-313 return true;\n-314 }\n-315\n-_\b3_\b1_\b6 friend typename _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt ( const _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by & /* geometry */ )\n-317 {\n-318 return _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bc_\bu_\bb_\be();\n-319 }\n-320\n-321 private:\n-322 // jacobianTransposed: fast case --> diagonal matrix\n-323 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( DiagonalMatrix<ctype,dim> &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd )\n-const\n-324 {\n-325 for (size_t i=0; i<dim; i++)\n-326 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd.diagonal()[i] = upper_[i] - lower_[i];\n-327 }\n-328\n-329 // jacobianTransposed: slow case --> dense matrix\n-330 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( FieldMatrix<ctype,dim,coorddim>\n-&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n-331 {\n-332 if (dim==0)\n-333 return;\n-334\n-335 size_t lc = 0;\n-336 for (size_t i=0; i<coorddim; i++)\n-337 if (axes_[i])\n-338 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd[lc++][i] = upper_[i] - lower_[i];\n-339 }\n-340\n-341 // jacobianInverseTransposed: fast case --> diagonal matrix\n-342 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( DiagonalMatrix<ctype,dim>\n-&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n-343 {\n-344 for (size_t i=0; i<dim; i++)\n-345 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd.diagonal()[i] = CoordType(1.0) / (upper_[i] -\n-lower_[i]);\n-346 }\n-347\n-348 // jacobianInverseTransposed: slow case --> dense matrix\n-349 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( FieldMatrix<ctype,coorddim,dim>\n-&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n-350 {\n-351 if (dim==0)\n-352 return;\n+309 }\n+310\n+311 // calculates x := L^{-T} x\n+312 template< int n >\n+313 static void invLTx ( FieldMatrix< ctype, n, n > &L, FieldVector< ctype, n >\n+&x )\n+314 {\n+315 for( int i = n; i > 0; --i )\n+316 {\n+317 for( int j = i; j < n; ++j )\n+318 x[ i-1 ] -= L[ j ][ i-1 ] * x[ j ];\n+319 x[ i-1 ] /= L[ i-1 ][ i-1 ];\n+320 }\n+321 }\n+322\n+323 template< int n >\n+324 static ctype spdDetA ( const FieldMatrix< ctype, n, n > &A )\n+325 {\n+326 // return A[0][0]*A[1][1]-A[1][0]*A[1][0];\n+327 FieldMatrix< ctype, n, n > L;\n+328 cholesky_L( A, L );\n+329 return detL( L );\n+330 }\n+331\n+332 template< int n >\n+333 static ctype spdInvA ( FieldMatrix< ctype, n, n > &A )\n+334 {\n+335 FieldMatrix< ctype, n, n > L;\n+336 cholesky_L( A, L );\n+337 const ctype det = invL( L );\n+338 LTL( L, A );\n+339 return det;\n+340 }\n+341\n+342 // calculate x := A^{-1} x\n+343 template< int n >\n+344 static bool spdInvAx ( FieldMatrix< ctype, n, n > &A, FieldVector< ctype, n\n+> &x, const bool checkSingular = false )\n+345 {\n+346 FieldMatrix< ctype, n, n > L;\n+347 const bool invertible = cholesky_L( A, L, checkSingular );\n+348 if( ! invertible ) return invertible ;\n+349 invLx( L, x );\n+350 invLTx( L, x );\n+351 return invertible;\n+352 }\n 353\n-354 size_t lc = 0;\n-355 for (size_t i=0; i<coorddim; i++)\n-356 if (axes_[i])\n-357 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd[i][lc++] = CoordType(1.0) / (upper_[i] - lower_\n-[i]);\n-358 }\n-359\n-360 Dune::FieldVector<ctype,coorddim> lower_;\n-361\n-362 Dune::FieldVector<ctype,coorddim> upper_;\n-363\n-364 std::bitset<coorddim> axes_;\n-365 };\n+354 template< int m, int n >\n+355 static ctype detATA ( const FieldMatrix< ctype, m, n > &A )\n+356 {\n+357 if( m >= n )\n+358 {\n+359 FieldMatrix< ctype, n, n > ata;\n+360 ATA_L( A, ata );\n+361 return spdDetA( ata );\n+362 }\n+363 else\n+364 return ctype( 0 );\n+365 }\n 366\n-367} // namespace Dune\n-368#endif\n+372 template< int m, int n >\n+373 static ctype sqrtDetAAT ( const FieldMatrix< ctype, m, n > &A )\n+374 {\n+375 using std::abs;\n+376 using std::sqrt;\n+377 // These special cases are here not only for speed reasons:\n+378 // The general implementation aborts if the matrix is almost singular,\n+379 // and the special implementation provide a stable way to handle that case.\n+380 if( (n == 2) && (m == 2) )\n+381 {\n+382 // Special implementation for 2x2 matrices: faster and more stable\n+383 return abs( A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ] );\n+384 }\n+385 else if( (n == 3) && (m == 3) )\n+386 {\n+387 // Special implementation for 3x3 matrices\n+388 const ctype v0 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 1 ][ 1 ] * A[ 0 ][ 2 ];\n+389 const ctype v1 = A[ 0 ][ 2 ] * A[ 1 ][ 0 ] - A[ 1 ][ 2 ] * A[ 0 ][ 0 ];\n+390 const ctype v2 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 1 ][ 0 ] * A[ 0 ][ 1 ];\n+391 return abs( v0 * A[ 2 ][ 0 ] + v1 * A[ 2 ][ 1 ] + v2 * A[ 2 ][ 2 ] );\n+392 }\n+393 else if ( (n == 3) && (m == 2) )\n+394 {\n+395 // Special implementation for 2x3 matrices\n+396 const ctype v0 = A[ 0 ][ 0 ] * A[ 1 ][ 1 ] - A[ 0 ][ 1 ] * A[ 1 ][ 0 ];\n+397 const ctype v1 = A[ 0 ][ 0 ] * A[ 1 ][ 2 ] - A[ 1 ][ 0 ] * A[ 0 ][ 2 ];\n+398 const ctype v2 = A[ 0 ][ 1 ] * A[ 1 ][ 2 ] - A[ 0 ][ 2 ] * A[ 1 ][ 1 ];\n+399 return sqrt( v0*v0 + v1*v1 + v2*v2);\n+400 }\n+401 else if( n >= m )\n+402 {\n+403 // General case\n+404 FieldMatrix< ctype, m, m > aat;\n+405 AAT_L( A, aat );\n+406 return spdDetA( aat );\n+407 }\n+408 else\n+409 return ctype( 0 );\n+410 }\n+411\n+412 // A^{-1}_L = (A^T A)^{-1} A^T\n+413 // => A^{-1}_L A = I\n+414 template< int m, int n >\n+415 static ctype leftInvA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n+ctype, n, m > &ret )\n+416 {\n+417 static_assert((m >= n), \"Matrix has no left inverse.\");\n+418 using std::abs;\n+419 if constexpr( (n == 2) && (m == 2) )\n+420 {\n+421 const ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);\n+422 const ctype detInv = ctype( 1 ) / det;\n+423 ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;\n+424 ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;\n+425 ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;\n+426 ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;\n+427 return abs( det );\n+428 }\n+429 else\n+430 {\n+431 FieldMatrix< ctype, n, n > ata;\n+432 ATA_L( A, ata );\n+433 const ctype det = spdInvA( ata );\n+434 ATBT( ata, A, ret );\n+435 return det;\n+436 }\n+437 }\n+438\n+439 template< int m, int n >\n+440 static bool leftInvAx ( const FieldMatrix< ctype, m, n > &A, const\n+FieldVector< ctype, m > &x, FieldVector< ctype, n > &y )\n+441 {\n+442 static_assert((m >= n), \"Matrix has no left inverse.\");\n+443 FieldMatrix< ctype, n, n > ata;\n+444 ATx( A, x, y );\n+445 ATA_L( A, ata );\n+446 return spdInvAx( ata, y, true );\n+447 }\n+448\n+450 template< int m, int n >\n+451 static ctype rightInvA ( const FieldMatrix< ctype, m, n > &A, FieldMatrix<\n+ctype, n, m > &ret )\n+452 {\n+453 static_assert((n >= m), \"Matrix has no right inverse.\");\n+454 using std::abs;\n+455 if constexpr( (n == 2) && (m == 2) )\n+456 {\n+457 const ctype det = (A[ 0 ][ 0 ]*A[ 1 ][ 1 ] - A[ 1 ][ 0 ]*A[ 0 ][ 1 ]);\n+458 const ctype detInv = ctype( 1 ) / det;\n+459 ret[ 0 ][ 0 ] = A[ 1 ][ 1 ] * detInv;\n+460 ret[ 1 ][ 1 ] = A[ 0 ][ 0 ] * detInv;\n+461 ret[ 1 ][ 0 ] = -A[ 1 ][ 0 ] * detInv;\n+462 ret[ 0 ][ 1 ] = -A[ 0 ][ 1 ] * detInv;\n+463 return abs( det );\n+464 }\n+465 else\n+466 {\n+467 FieldMatrix< ctype, m , m > aat;\n+468 AAT_L( A, aat );\n+469 const ctype det = spdInvA( aat );\n+470 ATBT( A , aat , ret );\n+471 return det;\n+472 }\n+473 }\n+474\n+475 template< int m, int n >\n+476 static bool xTRightInvA ( const FieldMatrix< ctype, m, n > &A, const\n+FieldVector< ctype, n > &x, FieldVector< ctype, m > &y )\n+477 {\n+478 static_assert((n >= m), \"Matrix has no right inverse.\");\n+479 FieldMatrix< ctype, m, m > aat;\n+480 Ax( A, x, y );\n+481 AAT_L( A, aat );\n+482 // check whether aat is singular and return true if non-singular\n+483 return spdInvAx( aat, y, true );\n+484 }\n+485 };\n+486\n+487 } // namespace Impl\n+488\n+489\n+490\n+496 template< class ct, int mydim, int cdim>\n+_\b4_\b9_\b7 class _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+498 {\n+499 public:\n+500\n+_\b5_\b0_\b2 typedef ct _\bc_\bt_\by_\bp_\be;\n+503\n+_\b5_\b0_\b5 static const int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn= mydim;\n+506\n+_\b5_\b0_\b8 static const int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = cdim;\n+509\n+_\b5_\b1_\b1 typedef FieldVector< ctype, mydimension > _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n+512\n+_\b5_\b1_\b4 typedef FieldVector< ctype, coorddimension > _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n+515\n+_\b5_\b1_\b7 typedef _\bc_\bt_\by_\bp_\be _\bV_\bo_\bl_\bu_\bm_\be;\n+518\n+_\b5_\b2_\b0 typedef FieldMatrix< ctype, mydimension, coorddimension >\n+_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n+521\n+_\b5_\b2_\b3 typedef FieldMatrix< ctype, coorddimension, mydimension >\n+_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n+524\n+_\b5_\b2_\b6 typedef FieldMatrix< ctype, coorddimension, mydimension > _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn;\n+527\n+_\b5_\b2_\b9 typedef FieldMatrix< ctype, mydimension, coorddimension > _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be;\n+530\n+531 private:\n+533 typedef _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b<_\b _\bc_\bt_\by_\bp_\be_\b,\n+_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b> > _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n+534\n+535 typedef _\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b> _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs;\n+536\n+537 // Helper class to compute a matrix pseudo inverse\n+538 typedef Impl::FieldMatrixHelper< ct > MatrixHelper;\n+539\n+540 public:\n+_\b5_\b4_\b7 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n+548\n+_\b5_\b5_\b0 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt &refElement, const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+&origin,\n+551 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &jt )\n+552 : refElement_(refElement), origin_(origin), jacobianTransposed_(jt)\n+553 {\n+554 integrationElement_ = MatrixHelper::template rightInvA< mydimension,\n+coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );\n+555 }\n+556\n+_\b5_\b5_\b8 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &origin,\n+559 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &jt )\n+560 : _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general( gt ), origin, jt)\n+561 { }\n+562\n+564 template< class CoordVector >\n+_\b5_\b6_\b5 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt &refElement, const CoordVector\n+&coordVector )\n+566 : refElement_(refElement), origin_(coordVector[0])\n+567 {\n+568 for( int i = 0; i < _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; ++i )\n+569 jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;\n+570 integrationElement_ = MatrixHelper::template rightInvA< mydimension,\n+coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );\n+571 }\n+572\n+574 template< class CoordVector >\n+_\b5_\b7_\b5 _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by ( _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, const CoordVector &coordVector )\n+576 : _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general( gt ), coordVector)\n+577 { }\n+578\n+_\b5_\b8_\b0 bool _\ba_\bf_\bf_\bi_\bn_\be () const { return true; }\n+581\n+_\b5_\b8_\b3 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const { return refElement_._\bt_\by_\bp_\be(); }\n+584\n+_\b5_\b8_\b6 int _\bc_\bo_\br_\bn_\be_\br_\bs () const { return refElement_._\bs_\bi_\bz_\be( _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn ); }\n+587\n+_\b5_\b8_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br ( int i ) const\n+590 {\n+591 return _\bg_\bl_\bo_\bb_\ba_\bl( refElement_._\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn( i, _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn ) );\n+592 }\n+593\n+_\b5_\b9_\b5 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const { return _\bg_\bl_\bo_\bb_\ba_\bl( refElement_._\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn( 0,\n+0 ) ); }\n+596\n+_\b6_\b0_\b3 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl ( const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl ) const\n+604 {\n+605 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl( origin_ );\n+606 jacobianTransposed_.umtv( _\bl_\bo_\bc_\ba_\bl, _\bg_\bl_\bo_\bb_\ba_\bl );\n+607 return _\bg_\bl_\bo_\bb_\ba_\bl;\n+608 }\n+609\n+_\b6_\b2_\b3 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl ( const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bg_\bl_\bo_\bb_\ba_\bl ) const\n+624 {\n+625 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl;\n+626 jacobianInverseTransposed_.mtv( _\bg_\bl_\bo_\bb_\ba_\bl - origin_, _\bl_\bo_\bc_\ba_\bl );\n+627 return _\bl_\bo_\bc_\ba_\bl;\n+628 }\n+629\n+_\b6_\b4_\b0 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl)\n+const\n+641 {\n+642 return integrationElement_;\n+643 }\n+644\n+_\b6_\b4_\b6 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be () const\n+647 {\n+648 return integrationElement_ * refElement_._\bv_\bo_\bl_\bu_\bm_\be();\n+649 }\n+650\n+_\b6_\b5_\b7 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ([[maybe_unused]] const\n+_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n+658 {\n+659 return jacobianTransposed_;\n+660 }\n+661\n+_\b6_\b6_\b8 const _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ([\n+[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n+669 {\n+670 return jacobianInverseTransposed_;\n+671 }\n+672\n+_\b6_\b7_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be &_\bl_\bo_\bc_\ba_\bl) const\n+680 {\n+681 return jacobianTransposed_.transposed();\n+682 }\n+683\n+_\b6_\b9_\b0 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be ([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+&_\bl_\bo_\bc_\ba_\bl) const\n+691 {\n+692 return jacobianInverseTransposed_.transposed();\n+693 }\n+694\n+_\b6_\b9_\b5 friend _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt ( const _\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by &geometry )\n+696 {\n+697 return geometry.refElement_;\n+698 }\n+699\n+700 private:\n+701 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt refElement_;\n+702 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be origin_;\n+703 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd jacobianTransposed_;\n+704 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd jacobianInverseTransposed_;\n+705 _\bc_\bt_\by_\bp_\be integrationElement_;\n+706 };\n+707\n+708} // namespace Dune\n+709\n+710#endif // #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename Container::ReferenceElement ReferenceElement\n-The reference element type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bc_\bu_\bb_\be\n-static const ReferenceElement & cube()\n-get hypercube reference elements\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:168\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-A geometry implementation for axis-aligned hypercubes.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:50\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume() const\n-Return the element volume.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:295\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const\n-Dune::FieldVector< ctype, coorddim > upper, const std::bitset< coorddim >\n-&axes)\n-Constructor from a lower left and an upper right corner.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:142\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const\n-Dune::FieldVector< ctype, coorddim > upper)\n-Constructor from a lower left and an upper right corner.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:124\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n-Inverse Jacobian of the transformation from local to global coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:235\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n-&local) const\n-Inverse Jacobian transposed of the transformation from local to global\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+decltype(referenceElement(std::declval< T >()...)) ReferenceElement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:347\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+This class provides access to geometric and topological properties of a\n+reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:52\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+CoordinateField volume() const\n+obtain the volume of the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:228\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type(int i, int c) const\n+obtain the type of subentity (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:167\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n+Coordinate position(int i, int c) const\n+position of the barycenter of entity (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:190\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bi_\bz_\be\n+int size(int c) const\n+number of subentities of codimension c\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:94\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:33\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+Class providing access to the singletons of the reference elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Implementation of the Geometry interface for affine geometries.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:498\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AffineGeometry(const ReferenceElement &refElement, const CoordVector\n+&coordVector)\n+Create affine geometry from reference element and a vector of vertex\n coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:217\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n-ctype, dim, coorddim > >::type JacobianTransposed\n-Return type of jacobianTransposed.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:81\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower)\n-Constructor from a single point only.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:159\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int mydimension\n-Dimension of the cube element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:56\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-friend Dune::ReferenceElements< ctype, dim >::ReferenceElement referenceElement\n-(const AxisAlignedCubeGeometry &)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:316\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int coorddimension\n-Dimension of the world space that the cube element is embedded in.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:59\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n-GlobalCoordinate corner(int k) const\n-Return world coordinates of the k-th corner of the element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:269\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:565\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AffineGeometry()=default\n+Constructs an empty geometry.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AffineGeometry(Dune::GeometryType gt, const GlobalCoordinate &origin, const\n+JacobianTransposed &jt)\n+Create affine geometry from GeometryType, one vertex, and the Jacobian matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:558\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, mydimension > LocalCoordinate\n+Type for local coordinate vector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:511\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n+Dune::GeometryType type() const\n+Obtain the type of the reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:583\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const int mydimension\n+Dimension of the geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:505\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AffineGeometry(const ReferenceElement &refElement, const GlobalCoordinate\n+&origin, const JacobianTransposed &jt)\n+Create affine geometry from reference element, one vertex, and the Jacobian\n+matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:550\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n ctype Volume\n Type used for volume.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, dim > LocalCoordinate\n-Type used for a vector of element coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:65\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n-Jacobian transposed of the transformation from local to global coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:205\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, coorddim > GlobalCoordinate\n-Type used for a vector of world coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:68\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n-LocalCoordinate local(const GlobalCoordinate &global) const\n-Map a point in global (world) coordinates to element coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:189\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n-CoordType ctype\n-Type used for single coordinate coefficients.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:62\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n-ctype, coorddim, dim > > Jacobian\n-Return type of jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:100\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n-GeometryType type() const\n-Type of the cube. Here: a hypercube of the correct dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:164\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:517\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n+Obtain the Jacobian's inverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:690\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+friend ReferenceElement referenceElement(const AffineGeometry &geometry)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:695\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AffineGeometry(Dune::GeometryType gt, const CoordVector &coordVector)\n+Create affine geometry from GeometryType and a vector of vertex coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:575\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n+ctype integrationElement(const LocalCoordinate &local) const\n+Obtain the integration element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:640\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n+Type for the inverse Jacobian matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:529\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n+Type for the Jacobian matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:526\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+const JacobianInverseTransposed & jacobianInverseTransposed(const\n+LocalCoordinate &local) const\n+Obtain the transposed of the Jacobian's inverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:668\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed\n+Type for the transposed Jacobian matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:520\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n+GlobalCoordinate corner(int i) const\n+Obtain coordinates of the i-th corner.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:589\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n int corners() const\n-Return the number of corners of the element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:263\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-Jacobian jacobian(const LocalCoordinate &local) const\n-Jacobian of the transformation from local to global coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:229\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n-ctype, coorddim, dim > >::type JacobianInverseTransposed\n-Return type of jacobianInverseTransposed.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:91\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n-Volume integrationElement(const LocalCoordinate &local) const\n-Return the integration element, i.e., the determinant term in the integral\n-transformation formula.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:243\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n+Obtain number of corners of the corresponding reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:586\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n+LocalCoordinate local(const GlobalCoordinate &global) const\n+Evaluate the inverse mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:623\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed\n+Type for the transposed inverse Jacobian matrix.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:523\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const int coorddimension\n+Dimension of the world space.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:508\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n+GlobalCoordinate global(const LocalCoordinate &local) const\n+Evaluate the mapping.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:603\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n GlobalCoordinate center() const\n-Return center of mass of the element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:249\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-AxisAlignedCubeGeometry()=default\n-Constructs an empty geometry.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n+Obtain the centroid of the mapping's image.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:595\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+Jacobian jacobian(const LocalCoordinate &local) const\n+Obtain the Jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:679\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n+ct ctype\n+Type used for coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:502\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, coorddimension > GlobalCoordinate\n+Type for coordinate vector in world space.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:514\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n bool affine() const\n-Return if the element is affine. Here: yes.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:311\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n-ctype, dim, coorddim > > JacobianInverse\n-Return type of jacobianInverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:109\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n-GlobalCoordinate global(const LocalCoordinate &local) const\n-Map a point in local (element) coordinates to world coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:170\n+Always true: this is an affine geometry.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:580\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+const JacobianTransposed & jacobianTransposed(const LocalCoordinate &local)\n+const\n+Obtain the transposed of the Jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:657\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bf_\bf_\bi_\bn_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume() const\n+Obtain the volume of the element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:646\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00194.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00194.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: hcubetriangulation.cc File Reference</title>\n+<title>dune-geometry: axisalignedcubegeometry.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,82 +65,49 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">hcubetriangulation.cc File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">axisalignedcubegeometry.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) \n+<p>A geometry implementation for axis-aligned hypercubes. \n <a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include "<a class=\"el\" href=\"a00206_source.html\">base.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00200_source.html\">simplex.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <bitset></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <dune/common/fmatrix.hh></code><br />\n+<code>#include <dune/common/diagonalmatrix.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00194_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01263.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01267.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01271.html\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01275.html\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01279.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01111.html\">Dune::AxisAlignedCubeGeometry< CoordType, dim, coorddim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A geometry implementation for axis-aligned hypercubes. <a href=\"a01111.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00271\" id=\"r_a00271\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00271.html\">Dune::RefinementImp::HCubeTriangulation</a></td></tr>\n-<tr class=\"memdesc:a00271\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\" title=\"Cube element in any nonnegative dimension.\">GeometryType::cube</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:a3fe24de9b756cd18f014979a41cb0843\" id=\"r_a3fe24de9b756cd18f014979a41cb0843\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00194.html#a3fe24de9b756cd18f014979a41cb0843\">DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</a></td></tr>\n-<tr class=\"separator:a3fe24de9b756cd18f014979a41cb0843\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) </p>\n-<p>See <a class=\"el\" href=\"a00258.html\">Refinement implementation for triangulating hypercubes</a>. </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"a3fe24de9b756cd18f014979a41cb0843\" name=\"a3fe24de9b756cd18f014979a41cb0843\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3fe24de9b756cd18f014979a41cb0843\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n-</div><!-- contents -->\n+<div class=\"textblock\"><p>A geometry implementation for axis-aligned hypercubes. </p>\n+</div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,55 +1,27 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n-hcubetriangulation.cc File Reference\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for triangulating hypercubes\n-(quadrilateral -> triangle, hexahedron -> tetrahedron) _\bM_\bo_\br_\be_\b._\b._\b.\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+axisalignedcubegeometry.hh File Reference\n+A geometry implementation for axis-aligned hypercubes. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <bitset>\n+#include <dune/common/fvector.hh>\n+#include <dune/common/fmatrix.hh>\n+#include <dune/common/diagonalmatrix.hh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b,_\b _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\b _\b>\n+\u00a0 A geometry implementation for axis-aligned hypercubes. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n- This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n-\u00a0 triangulating hypercubes (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:\n- _\bs_\bi_\bm_\bp_\bl_\be_\bx)\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bH_\bC_\bU_\bB_\bE_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n-\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for triangulating hypercubes\n-(quadrilateral -> triangle, hexahedron -> tetrahedron)\n-See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bn_\bg_\b _\bh_\by_\bp_\be_\br_\bc_\bu_\bb_\be_\bs.\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_H\bHC\bCU\bUB\bBE\bET\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC\n+A geometry implementation for axis-aligned hypercubes.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00194_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00194_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: hcubetriangulation.cc Source File</title>\n+<title>dune-geometry: axisalignedcubegeometry.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,509 +70,364 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">hcubetriangulation.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">axisalignedcubegeometry.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00194.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00194.html#a3fe24de9b756cd18f014979a41cb0843\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">base.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00200.html\">simplex.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span>{</div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> {</div>\n-<div class=\"foldopen\" id=\"foldopen00046\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00271.html\"> 46</a></span> <span class=\"keyword\">namespace </span>HCubeTriangulation {</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> </div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"comment\">// ////////////</span></div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"comment\">// Utilities</span></div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <bitset></span></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/diagonalmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> coorddim></div>\n+<div class=\"foldopen\" id=\"foldopen00049\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html\"> 49</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01111.html\">AxisAlignedCubeGeometry</a></div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> {</div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n <div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> </div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Simplex::getPermutation</a>;</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Simplex::referenceToKuhn</a>;</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> </div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"comment\">// ////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> <span class=\"comment\">// Refine a hypercube with simplices</span></div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\"> 56</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\">mydimension</a> = dim;</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> </div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\"> 59</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\">coorddimension</a> = coorddim;</div>\n <div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> <span class=\"comment\">// forward declaration of the iterator base</span></div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01259.html\"> 63</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html\"> 66</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01263.html\">RefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\"> 69</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a> = dimension_;</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a773bc53979c599481029d559fc9e110f\"> 71</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01263.html#a773bc53979c599481029d559fc9e110f\">ctype</a>;</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\"> 62</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a>;</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\"> 65</a></span> <span class=\"keyword\">typedef</span> FieldVector<ctype,dim> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>;</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\"> 68</a></span> <span class=\"keyword\">typedef</span> FieldVector<ctype,coorddim> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a>;</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\"> 71</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a>;</div>\n <div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01267.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\"> 75</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01267.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a4f93d52680b9539b28664fae93d2a301\"> 76</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01263.html#a4f93d52680b9539b28664fae93d2a301\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\"> 77</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01267.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#aa5204020454b0418002029b5309565d0\"> 78</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01263.html#aa5204020454b0418002029b5309565d0\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01263.html#ad985fb7f8bafba25576c54a6b8f97cbb\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01263.html#a27adad09a1084ed4845d5ffe6655c110\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01263.html#a022bc9022ec3a9ce1e33f6530b377b63\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01263.html#a4258ad88dba3ee86fb685828f29d4493\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01263.html#ab7c9bf67e4a1640a1b5342350b8ea6d1\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a15d10024428cb4136290fa22c2c68374\"> 86</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01263.html#abebb1aa77b95d7380e54ab4af60e9c9e\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>, CoordType, 0>;</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>, CoordType, <a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>>;</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> </div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">Simplex::RefinementImp<dimension, CoordType></a> <a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> </div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00096\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01267.html\"> 96</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01263.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01267.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> {</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01267.html#aa7e7283765ffa243ce4d2a26e984f62d\"> 99</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01151.html\">Dune::MultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01267.html#aa7e7283765ffa243ce4d2a26e984f62d\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> };</div>\n-</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::conditional<dim==coorddim,</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> DiagonalMatrix<ctype,dim>,</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\"> 81</a></span> FieldMatrix<ctype,dim,coorddim> ><a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">::type</a> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a>;</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::conditional<dim==coorddim,</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> DiagonalMatrix<ctype,dim>,</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\"> 91</a></span> FieldMatrix<ctype,coorddim,dim> ><a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">::type</a> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a>;</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\"> 100</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Jacobian</a> = std::conditional_t<dim==coorddim, DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,coorddim,dim> >;</div>\n <div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> </div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00104\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#ad985fb7f8bafba25576c54a6b8f97cbb\"> 104</a></span> <a class=\"code hl_function\" href=\"a01263.html#ad985fb7f8bafba25576c54a6b8f97cbb\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span><a class=\"code hl_function\" href=\"a01263.html#ad985fb7f8bafba25576c54a6b8f97cbb\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> {</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"keywordflow\">return</span> BackendRefinement::nVertices(nIntervals) * factorial(<span class=\"keywordtype\">int</span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> </div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00112\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a27adad09a1084ed4845d5ffe6655c110\"> 112</a></span> <a class=\"code hl_function\" href=\"a01263.html#a27adad09a1084ed4845d5ffe6655c110\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span><a class=\"code hl_function\" href=\"a01263.html#a27adad09a1084ed4845d5ffe6655c110\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> {</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">VertexIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> </div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00120\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a022bc9022ec3a9ce1e33f6530b377b63\"> 120</a></span> <a class=\"code hl_function\" href=\"a01263.html#a022bc9022ec3a9ce1e33f6530b377b63\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span><a class=\"code hl_function\" href=\"a01263.html#a022bc9022ec3a9ce1e33f6530b377b63\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> {</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> </div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00128\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#a4258ad88dba3ee86fb685828f29d4493\"> 128</a></span> <a class=\"code hl_function\" href=\"a01263.html#a4258ad88dba3ee86fb685828f29d4493\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span><a class=\"code hl_function\" href=\"a01263.html#a4258ad88dba3ee86fb685828f29d4493\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> {</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"keywordflow\">return</span> BackendRefinement::nElements(nIntervals) * factorial(<span class=\"keywordtype\">int</span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> </div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00136\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#ab7c9bf67e4a1640a1b5342350b8ea6d1\"> 136</a></span> <a class=\"code hl_function\" href=\"a01263.html#ab7c9bf67e4a1640a1b5342350b8ea6d1\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span><a class=\"code hl_function\" href=\"a01263.html#ab7c9bf67e4a1640a1b5342350b8ea6d1\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> {</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">ElementIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> </div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00144\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01263.html#abebb1aa77b95d7380e54ab4af60e9c9e\"> 144</a></span> <a class=\"code hl_function\" href=\"a01263.html#abebb1aa77b95d7380e54ab4af60e9c9e\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span><a class=\"code hl_function\" href=\"a01263.html#abebb1aa77b95d7380e54ab4af60e9c9e\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> {</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> </div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"comment\">// //////////////</span></div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"comment\">// The iterator</span></div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> </div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"comment\">// vertices</span></div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00157\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html\"> 157</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> {</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#aae895ebfa8f0231265161c198b7b8f6f\"> 160</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01263.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01271.html#aae895ebfa8f0231265161c198b7b8f6f\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a3ba77d3d182319db26bf850daea605f1\"> 161</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01271.html#a3ba77d3d182319db26bf850daea605f1\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a585e5b3bb6321c903213a20ee32aa5da\"> 162</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01271.html#a585e5b3bb6321c903213a20ee32aa5da\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> </div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> </div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> <a class=\"code hl_typedef\" href=\"a01271.html#a3ba77d3d182319db26bf850daea605f1\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> </div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> <a class=\"code hl_typedef\" href=\"a01271.html#a585e5b3bb6321c903213a20ee32aa5da\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a882a10fdee01549555aa7926ef76b1f1\"> 174</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::BackendRefinement <a class=\"code hl_typedef\" href=\"a01271.html#a882a10fdee01549555aa7926ef76b1f1\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a5a130017ad4e6c98fd1fc2d4b26a9438\"> 175</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01271.html#a5a130017ad4e6c98fd1fc2d4b26a9438\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a0dd1988aa8bd824e6e0e6b84cc1b8b9f\"> 176</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = factorial(<span class=\"keywordtype\">int</span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a137def3178922461d819752ecf291d17\"> 178</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01271.html#a137def3178922461d819752ecf291d17\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a263067ab59353a5e8e0bc7b24255da7c\"> 180</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01271.html#a263067ab59353a5e8e0bc7b24255da7c\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#aaaea1029e64cb901c462becfbba4de42\"> 181</a></span> <a class=\"code hl_typedef\" href=\"a01271.html#a5a130017ad4e6c98fd1fc2d4b26a9438\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01271.html#aaaea1029e64cb901c462becfbba4de42\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#ac83a41175581fbe1c05285f78d05fba1\"> 182</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01271.html#a5a130017ad4e6c98fd1fc2d4b26a9438\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01271.html#ac83a41175581fbe1c05285f78d05fba1\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> </div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00186\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#aff35343a6ca8a1c0cb79dde3fe9e63d7\"> 186</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span><a class=\"code hl_class\" href=\"a01259.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> backend(<a class=\"code hl_typedef\" href=\"a01271.html#a882a10fdee01549555aa7926ef76b1f1\">BackendRefinement</a>::vBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> backendEnd(<a class=\"code hl_typedef\" href=\"a01271.html#a882a10fdee01549555aa7926ef76b1f1\">BackendRefinement</a>::vEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> {</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> </div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00198\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a2060545ef39fe13ba8d91e196684847d\"> 198</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span><a class=\"code hl_class\" href=\"a01259.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> {</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> backend = BackendRefinement::vBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> }</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> }</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\"> 109</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">JacobianInverse</a> = std::conditional_t<dim==coorddim, DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,dim,coorddim> >;</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> </div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\"> 118</a></span> <a class=\"code hl_function\" href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\">AxisAlignedCubeGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\"> 124</a></span> <a class=\"code hl_function\" href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower,</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> upper)</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> : lower_(lower),</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> upper_(upper),</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> axes_()</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> {</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">static_assert</span>(dim==coorddim, <span class=\"stringliteral\">"Use this constructor only if dim==coorddim!"</span>);</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"comment\">// all 'true', but is never actually used</span></div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> axes_ = (1<<coorddim)-1;</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00142\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\"> 142</a></span> <a class=\"code hl_function\" href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower,</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> upper,</div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">const</span> std::bitset<coorddim>& axes)</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> : lower_(lower),</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> upper_(upper),</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> axes_(axes)</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> {</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> assert(axes.count()==dim);</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">if</span> (not axes_[i])</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> upper_[i] = lower_[i];</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> }</div>\n </div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00159\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\"> 159</a></span> <a class=\"code hl_function\" href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\">AxisAlignedCubeGeometry</a>(<span class=\"keyword\">const</span> Dune::FieldVector<ctype,coorddim> lower)</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> : lower_(lower)</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00164\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\"> 164</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">type</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordflow\">return</span> GeometryTypes::cube(dim);</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00170\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\"> 170</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> result[i] = lower_[i] + <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>[i]*(upper_[i] - lower_[i]);</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim == 0) { <span class=\"comment\">// a vertex -- the other fast case</span></div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> result = lower_; <span class=\"comment\">// hope for named-return-type-optimization</span></div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> } <span class=\"keywordflow\">else</span> { <span class=\"comment\">// slow case</span></div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordtype\">size_t</span> lc=0;</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> result[i] = (axes_[i])</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> ? lower_[i] + <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>[lc++]*(upper_[i] - lower_[i])</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> : lower_[i];</div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> }</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00189\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\"> 189</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a> result;</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> result[i] = (<a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>[i] - lower_[i]) / (upper_[i] - lower_[i]);</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim != 0) { <span class=\"comment\">// slow case</span></div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordtype\">size_t</span> lc=0;</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> result[lc++] = (<a class=\"code hl_function\" href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">global</a>[i] - lower_[i]) / (upper_[i] - lower_[i]);</div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> }</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00205\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\"> 205</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> <a class=\"code hl_typedef\" href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">JacobianTransposed</a> result;</div>\n <div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> </div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00211\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#ab85233fe1bb4218a5d96a83395646bca\"> 211</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span><a class=\"code hl_class\" href=\"a01259.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> <span class=\"keywordflow\">return</span> referenceToKuhn(backend.coords(), getPermutation<dimension>(kuhnIndex));</div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> </div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00219\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a5575c8ee66825fdd0f9c4a0a5a8e5288\"> 219</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> std::vector<CoordVector> corners(1);</div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>(kuhnIndex));</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01271.html#a585e5b3bb6321c903213a20ee32aa5da\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> </div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00228\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01271.html#a0f36361ea04a2f670e8154830a24d1fd\"> 228</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span><a class=\"code hl_class\" href=\"a01259.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> }</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"comment\">// Actually compute the result. Uses different methods depending</span></div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"comment\">// on what kind of matrix JacobianTransposed is.</span></div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>(result);</div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00217\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\"> 217</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <a class=\"code hl_typedef\" href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">JacobianInverseTransposed</a> result;</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> </div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"comment\">// Actually compute the result. Uses different methods depending</span></div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> <span class=\"comment\">// on what kind of matrix JacobianTransposed is.</span></div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>(result);</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> </div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00229\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\"> 229</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Jacobian</a> <a class=\"code hl_function\" href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\">jacobian</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>).transposed();</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> }</div>\n </div>\n <div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"comment\">// elements</span></div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00236\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html\"> 236</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> {</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#af2d5bc972980f208116da99eb682030d\"> 239</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01263.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01275.html#af2d5bc972980f208116da99eb682030d\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#ab969d7ae44b67ed66ac882883eab186f\"> 240</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#aa5204020454b0418002029b5309565d0\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01275.html#ab969d7ae44b67ed66ac882883eab186f\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a7f346219c901d3c656916e48157e0228\"> 241</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01263.html#a4f93d52680b9539b28664fae93d2a301\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01275.html#a7f346219c901d3c656916e48157e0228\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#af5852a717085c36d13474a65d601eba8\"> 242</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01275.html#af5852a717085c36d13474a65d601eba8\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals_, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a> &other);</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> </div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <a class=\"code hl_typedef\" href=\"a01275.html#ab969d7ae44b67ed66ac882883eab186f\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <a class=\"code hl_typedef\" href=\"a01275.html#a7f346219c901d3c656916e48157e0228\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <a class=\"code hl_typedef\" href=\"a01275.html#af5852a717085c36d13474a65d601eba8\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <a class=\"code hl_typedef\" href=\"a01275.html#a7f346219c901d3c656916e48157e0228\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01275.html#a7f346219c901d3c656916e48157e0228\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a8f813e1ac4e7475cf443e1f9ed9295a9\"> 259</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01331.html\">Refinement::BackendRefinement</a> <a class=\"code hl_typedef\" href=\"a01275.html#a8f813e1ac4e7475cf443e1f9ed9295a9\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a1af74639140dac394b969b27cff6d4a3\"> 260</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01275.html#a1af74639140dac394b969b27cff6d4a3\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a3c62b673877170e017b6a39df614a013\"> 261</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = factorial(dimension);</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> </div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a90d1d273e0f52e9f89c0639d99ae368a\"> 263</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01275.html#a90d1d273e0f52e9f89c0639d99ae368a\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a82029317998f4fe35d133faa1fa57114\"> 265</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01275.html#a82029317998f4fe35d133faa1fa57114\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a301aeea6a6be6b0f55790ab2a68e4dc0\"> 266</a></span> <a class=\"code hl_typedef\" href=\"a01275.html#a1af74639140dac394b969b27cff6d4a3\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01275.html#a301aeea6a6be6b0f55790ab2a68e4dc0\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a8103622c9e1d099880d8d363f03768c2\"> 267</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01275.html#a1af74639140dac394b969b27cff6d4a3\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01275.html#a8103622c9e1d099880d8d363f03768c2\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> </div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00271\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a79521e2e162cfbdcb24a78136e4edc0c\"> 271</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span><a class=\"code hl_class\" href=\"a01259.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> backend(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> backendEnd(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> {</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00281\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#adde5dd0272b3bdc9d9fffe832b547141\"> 281</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span><a class=\"code hl_class\" href=\"a01259.html\"> RefinementIteratorSpecial</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a> &other)</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> : nIntervals_(other.nIntervals_), kuhnIndex(other.kuhnIndex),</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> backend(other.backend),</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> backendEnd(other.backendEnd)</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00290\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a8c81d0b2d78aecf53efeeb15f903c998\"> 290</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span><a class=\"code hl_class\" href=\"a01259.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> {</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> {</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> backend = BackendRefinement::eBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> }</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> </div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00303\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a68df5e2cc7f7f4d58b14b576b5fb6d30\"> 303</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span><a class=\"code hl_class\" href=\"a01259.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <a class=\"code hl_typedef\" href=\"a01275.html#ab969d7ae44b67ed66ac882883eab186f\">IndexVector</a> indices = backend.vertexIndices();</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> <span class=\"keywordtype\">int</span> base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> indices += base;</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> </div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keywordflow\">return</span> indices;</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> </div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00316\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a1b5c6f391fbdfa29852acf076f878282\"> 316</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span><a class=\"code hl_class\" href=\"a01259.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> </div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00324\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#a37320fb8d02d6b23e17bc1601f31e77a\"> 324</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span><a class=\"code hl_class\" href=\"a01259.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keywordflow\">return</span> global(backend.coords());</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> </div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00332\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01275.html#af53371f8c0a9c15c4a9e0425c883be7d\"> 332</a></span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> BackendIterator::Geometry &bgeo =</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> backend.geometry();</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> std::vector<CoordVector> corners(dimension+1);</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> corners[i] = global(bgeo.corner(i));</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> </div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01275.html#af5852a717085c36d13474a65d601eba8\">Geometry</a>(bgeo.type(), corners);</div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> </div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><a class=\"code hl_class\" href=\"a01259.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">return</span> referenceToKuhn(local, getPermutation<dimension>(kuhnIndex));</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> }</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"comment\">// common</span></div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00354\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01279.html\"> 354</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01263.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01267.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> {</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01279.html#ae40d8c091076d021e639fbba1bdf700d\"> 359</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01263.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01279.html#ae40d8c091076d021e639fbba1bdf700d\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01279.html#aeb2df4abca7bc7d7c823f6745542f902\"> 360</a></span> <span class=\"keyword\">typedef</span> SubEntityIterator <a class=\"code hl_typedef\" href=\"a01279.html#aeb2df4abca7bc7d7c823f6745542f902\">This</a>;</div>\n+<div class=\"foldopen\" id=\"foldopen00235\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\"> 235</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\">jacobianInverse</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>(<a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>).transposed();</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00243\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\"> 243</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a> <a class=\"code hl_function\" href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\">integrationElement</a>([[maybe_unused]] <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">local</a>)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">volume</a>();</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00249\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\"> 249</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\">center</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> result = lower_;</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keywordflow\">else</span> {</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"comment\">// Since lower_==upper_ for unused coordinates, this always does the right thing</span></div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> result[i] = CoordType(0.5) * (lower_[i] + upper_[i]);</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> }</div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00263\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\"> 263</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\">corners</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">return</span> 1<<dim;</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00269\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\"> 269</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\">corner</a>(<span class=\"keywordtype\">int</span> k)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <a class=\"code hl_typedef\" href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">GlobalCoordinate</a> result;</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> result[i] = (k & (1<<i)) ? upper_[i] : lower_[i];</div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim == 0) { <span class=\"comment\">// vertex</span></div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> result = lower_; <span class=\"comment\">// rely on named return-type optimization</span></div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> } <span class=\"keywordflow\">else</span> { <span class=\"comment\">// slow case</span></div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> mask = 1;</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> </div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++) {</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keywordflow\">if</span> (not axes_[i])</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> result[i] = lower_[i];</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">else</span> {</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> result[i] = (k & mask) ? upper_[i] : lower_[i];</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> mask = (mask<<1);</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> }</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> }</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> </div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> </div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">return</span> result;</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00295\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\"> 295</a></span> <a class=\"code hl_typedef\" href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Volume</a> <a class=\"code hl_function\" href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">volume</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <a class=\"code hl_typedef\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a> vol = 1;</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keywordflow\">if</span> (dim == coorddim) { <span class=\"comment\">// fast case</span></div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> vol *= upper_[i] - lower_[i];</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"comment\">// do nothing if dim == 0</span></div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> } <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span> (dim != 0) { <span class=\"comment\">// slow case</span></div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> vol *= upper_[i] - lower_[i];</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> <span class=\"keywordflow\">return</span> vol;</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00311\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#af40f429805e6956c2fda18dffc481194\"> 311</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01111.html#af40f429805e6956c2fda18dffc481194\">affine</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00316\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\"> 316</a></span> <span class=\"keyword\">friend</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::ReferenceElements< ctype, dim >::ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\">referenceElement</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01111.html\">AxisAlignedCubeGeometry</a> & <span class=\"comment\">/* geometry */</span> )</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> {</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01099.html#a576e3dc4283b26ac98568f40dfa5e251\">ReferenceElements< ctype, dim >::cube</a>();</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> </div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"comment\">// jacobianTransposed: fast case --> diagonal matrix</span></div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> ( DiagonalMatrix<ctype,dim> &<a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>.diagonal()[i] = upper_[i] - lower_[i];</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> }</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> </div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"comment\">// jacobianTransposed: slow case --> dense matrix</span></div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> ( FieldMatrix<ctype,dim,coorddim> &<a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> <span class=\"keywordflow\">return</span>;</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">size_t</span> lc = 0;</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <a class=\"code hl_function\" href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">jacobianTransposed</a>[lc++][i] = upper_[i] - lower_[i];</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"comment\">// jacobianInverseTransposed: fast case --> diagonal matrix</span></div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> ( DiagonalMatrix<ctype,dim> &<a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<dim; i++)</div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>.diagonal()[i] = CoordType(1.0) / (upper_[i] - lower_[i]);</div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> }</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> </div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"comment\">// jacobianInverseTransposed: slow case --> dense matrix</span></div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> ( FieldMatrix<ctype,coorddim,dim> &<a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a> )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">if</span> (dim==0)</div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keywordflow\">return</span>;</div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keywordtype\">size_t</span> lc = 0;</div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> i=0; i<coorddim; i++)</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keywordflow\">if</span> (axes_[i])</div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <a class=\"code hl_function\" href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">jacobianInverseTransposed</a>[i][lc++] = CoordType(1.0) / (upper_[i] - lower_[i]);</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> }</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> Dune::FieldVector<ctype,coorddim> lower_;</div>\n <div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01279.html#a7897b92bace6241996ed31746c6c42b8\"> 362</a></span> <a class=\"code hl_function\" href=\"a01279.html#a7897b92bace6241996ed31746c6c42b8\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> Dune::FieldVector<ctype,coorddim> upper_;</div>\n <div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01279.html#a45beff0caf18b9d127a8ee6babfd45b1\"> 364</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01279.html#a45beff0caf18b9d127a8ee6babfd45b1\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01279.html#aeb2df4abca7bc7d7c823f6745542f902\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>, CoordType, codimension>::kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">dimension</a>, CoordType, codimension>::backend;</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> </div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <a class=\"code hl_class\" href=\"a01263.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span><a class=\"code hl_class\" href=\"a01263.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> : <a class=\"code hl_class\" href=\"a01259.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> {}</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> </div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> <a class=\"code hl_class\" href=\"a01263.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><a class=\"code hl_class\" href=\"a01263.html\"> equals</a>(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> kuhnIndex == other.kuhnIndex && backend == other.backend; }</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> </div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> } <span class=\"comment\">// namespace HCubeTriangulation</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> </div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> {</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"comment\">// ///////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"comment\">// The refinement traits</span></div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> </div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId,</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keyword\">struct </span>Traits<</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> topologyId, CoordType, coerceToId, dim,</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> (dim >= 2 &&</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> (GeometryTypes::cube(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> (topologyId >> 1) &&</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> (GeometryTypes::simplex(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> (coerceToId >> 1)</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> )>::type</div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> ></div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> {</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keyword\">typedef</span> HCubeTriangulation::RefinementImp<dim, CoordType> Imp;</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> };</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> </div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> std::bitset<coorddim> axes_;</div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> </div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span><span class=\"preprocessor\">#endif</span></div>\n <div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00200_html\"><div class=\"ttname\"><a href=\"a00200.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n-<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01151_html\"><div class=\"ttname\"><a href=\"a01151.html\">Dune::MultiLinearGeometry</a></div><div class=\"ttdoc\">generic geometry implementation based on corner coordinates</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:181</div></div>\n-<div class=\"ttc\" id=\"aa01259_html\"><div class=\"ttname\"><a href=\"a01259.html\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:63</div></div>\n-<div class=\"ttc\" id=\"aa01263_html\"><div class=\"ttname\"><a href=\"a01263.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:67</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a022bc9022ec3a9ce1e33f6530b377b63\"><div class=\"ttname\"><a href=\"a01263.html#a022bc9022ec3a9ce1e33f6530b377b63\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:121</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a27adad09a1084ed4845d5ffe6655c110\"><div class=\"ttname\"><a href=\"a01263.html#a27adad09a1084ed4845d5ffe6655c110\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:113</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a4258ad88dba3ee86fb685828f29d4493\"><div class=\"ttname\"><a href=\"a01263.html#a4258ad88dba3ee86fb685828f29d4493\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:129</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a4f93d52680b9539b28664fae93d2a301\"><div class=\"ttname\"><a href=\"a01263.html#a4f93d52680b9539b28664fae93d2a301\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:76</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a773bc53979c599481029d559fc9e110f\"><div class=\"ttname\"><a href=\"a01263.html#a773bc53979c599481029d559fc9e110f\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:71</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_a7e3864acf444a0dcab806f4a2c2fc2a4\"><div class=\"ttname\"><a href=\"a01263.html#a7e3864acf444a0dcab806f4a2c2fc2a4\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:77</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_aa5204020454b0418002029b5309565d0\"><div class=\"ttname\"><a href=\"a01263.html#aa5204020454b0418002029b5309565d0\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:78</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_ab7c9bf67e4a1640a1b5342350b8ea6d1\"><div class=\"ttname\"><a href=\"a01263.html#ab7c9bf67e4a1640a1b5342350b8ea6d1\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:137</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_abebb1aa77b95d7380e54ab4af60e9c9e\"><div class=\"ttname\"><a href=\"a01263.html#abebb1aa77b95d7380e54ab4af60e9c9e\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:145</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_abf96e92ce2c4d0190b23b610bd8caae3\"><div class=\"ttname\"><a href=\"a01263.html#abf96e92ce2c4d0190b23b610bd8caae3\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:69</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_ad010697efedc5d2877e1d68cda083ff8\"><div class=\"ttname\"><a href=\"a01263.html#ad010697efedc5d2877e1d68cda083ff8\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:75</div></div>\n-<div class=\"ttc\" id=\"aa01263_html_ad985fb7f8bafba25576c54a6b8f97cbb\"><div class=\"ttname\"><a href=\"a01263.html#ad985fb7f8bafba25576c54a6b8f97cbb\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:105</div></div>\n-<div class=\"ttc\" id=\"aa01267_html\"><div class=\"ttname\"><a href=\"a01267.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:97</div></div>\n-<div class=\"ttc\" id=\"aa01267_html_aa7e7283765ffa243ce4d2a26e984f62d\"><div class=\"ttname\"><a href=\"a01267.html#aa7e7283765ffa243ce4d2a26e984f62d\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:99</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a137def3178922461d819752ecf291d17\"><div class=\"ttname\"><a href=\"a01271.html#a137def3178922461d819752ecf291d17\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:178</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a263067ab59353a5e8e0bc7b24255da7c\"><div class=\"ttname\"><a href=\"a01271.html#a263067ab59353a5e8e0bc7b24255da7c\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:180</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a3ba77d3d182319db26bf850daea605f1\"><div class=\"ttname\"><a href=\"a01271.html#a3ba77d3d182319db26bf850daea605f1\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:161</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a585e5b3bb6321c903213a20ee32aa5da\"><div class=\"ttname\"><a href=\"a01271.html#a585e5b3bb6321c903213a20ee32aa5da\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:162</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a5a130017ad4e6c98fd1fc2d4b26a9438\"><div class=\"ttname\"><a href=\"a01271.html#a5a130017ad4e6c98fd1fc2d4b26a9438\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< dimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:175</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_a882a10fdee01549555aa7926ef76b1f1\"><div class=\"ttname\"><a href=\"a01271.html#a882a10fdee01549555aa7926ef76b1f1\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:174</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_aaaea1029e64cb901c462becfbba4de42\"><div class=\"ttname\"><a href=\"a01271.html#aaaea1029e64cb901c462becfbba4de42\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:181</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_aae895ebfa8f0231265161c198b7b8f6f\"><div class=\"ttname\"><a href=\"a01271.html#aae895ebfa8f0231265161c198b7b8f6f\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:160</div></div>\n-<div class=\"ttc\" id=\"aa01271_html_ac83a41175581fbe1c05285f78d05fba1\"><div class=\"ttname\"><a href=\"a01271.html#ac83a41175581fbe1c05285f78d05fba1\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:182</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a1af74639140dac394b969b27cff6d4a3\"><div class=\"ttname\"><a href=\"a01275.html#a1af74639140dac394b969b27cff6d4a3\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:260</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a301aeea6a6be6b0f55790ab2a68e4dc0\"><div class=\"ttname\"><a href=\"a01275.html#a301aeea6a6be6b0f55790ab2a68e4dc0\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:266</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a7f346219c901d3c656916e48157e0228\"><div class=\"ttname\"><a href=\"a01275.html#a7f346219c901d3c656916e48157e0228\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:241</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a8103622c9e1d099880d8d363f03768c2\"><div class=\"ttname\"><a href=\"a01275.html#a8103622c9e1d099880d8d363f03768c2\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:267</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a82029317998f4fe35d133faa1fa57114\"><div class=\"ttname\"><a href=\"a01275.html#a82029317998f4fe35d133faa1fa57114\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:265</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a8f813e1ac4e7475cf443e1f9ed9295a9\"><div class=\"ttname\"><a href=\"a01275.html#a8f813e1ac4e7475cf443e1f9ed9295a9\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:259</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_a90d1d273e0f52e9f89c0639d99ae368a\"><div class=\"ttname\"><a href=\"a01275.html#a90d1d273e0f52e9f89c0639d99ae368a\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:263</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_ab969d7ae44b67ed66ac882883eab186f\"><div class=\"ttname\"><a href=\"a01275.html#ab969d7ae44b67ed66ac882883eab186f\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:240</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_af2d5bc972980f208116da99eb682030d\"><div class=\"ttname\"><a href=\"a01275.html#af2d5bc972980f208116da99eb682030d\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:239</div></div>\n-<div class=\"ttc\" id=\"aa01275_html_af5852a717085c36d13474a65d601eba8\"><div class=\"ttname\"><a href=\"a01275.html#af5852a717085c36d13474a65d601eba8\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:242</div></div>\n-<div class=\"ttc\" id=\"aa01279_html_a45beff0caf18b9d127a8ee6babfd45b1\"><div class=\"ttname\"><a href=\"a01279.html#a45beff0caf18b9d127a8ee6babfd45b1\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n-<div class=\"ttc\" id=\"aa01279_html_a7897b92bace6241996ed31746c6c42b8\"><div class=\"ttname\"><a href=\"a01279.html#a7897b92bace6241996ed31746c6c42b8\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n-<div class=\"ttc\" id=\"aa01279_html_ae40d8c091076d021e639fbba1bdf700d\"><div class=\"ttname\"><a href=\"a01279.html#ae40d8c091076d021e639fbba1bdf700d\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:359</div></div>\n-<div class=\"ttc\" id=\"aa01279_html_aeb2df4abca7bc7d7c823f6745542f902\"><div class=\"ttname\"><a href=\"a01279.html#aeb2df4abca7bc7d7c823f6745542f902\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> hcubetriangulation.cc:360</div></div>\n-<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a576e3dc4283b26ac98568f40dfa5e251\"><div class=\"ttname\"><a href=\"a01099.html#a576e3dc4283b26ac98568f40dfa5e251\">Dune::Geo::ReferenceElements::cube</a></div><div class=\"ttdeci\">static const ReferenceElement & cube()</div><div class=\"ttdoc\">get hypercube reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:168</div></div>\n+<div class=\"ttc\" id=\"aa01111_html\"><div class=\"ttname\"><a href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:50</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a061a90cc51269ef4e8a274a5d90142d2\"><div class=\"ttname\"><a href=\"a01111.html#a061a90cc51269ef4e8a274a5d90142d2\">Dune::AxisAlignedCubeGeometry::volume</a></div><div class=\"ttdeci\">Volume volume() const</div><div class=\"ttdoc\">Return the element volume.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:295</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a0ac822ada6e30c08cddc4ed4e110a63d\"><div class=\"ttname\"><a href=\"a01111.html#a0ac822ada6e30c08cddc4ed4e110a63d\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const Dune::FieldVector< ctype, coorddim > upper, const std::bitset< coorddim > &axes)</div><div class=\"ttdoc\">Constructor from a lower left and an upper right corner.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:142</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a0c3fe3e4049f882dc1b0f6e371bbee29\"><div class=\"ttname\"><a href=\"a01111.html#a0c3fe3e4049f882dc1b0f6e371bbee29\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const Dune::FieldVector< ctype, coorddim > upper)</div><div class=\"ttdoc\">Constructor from a lower left and an upper right corner.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:124</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a0fbd63f126a4cc5d7d26218935ba726f\"><div class=\"ttname\"><a href=\"a01111.html#a0fbd63f126a4cc5d7d26218935ba726f\">Dune::AxisAlignedCubeGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Inverse Jacobian of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:235</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a11491f8e9577b986eaa71c8a20082c00\"><div class=\"ttname\"><a href=\"a01111.html#a11491f8e9577b986eaa71c8a20082c00\">Dune::AxisAlignedCubeGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Inverse Jacobian transposed of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:217</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a11d736f6306e3bd0fa63673e5537bffa\"><div class=\"ttname\"><a href=\"a01111.html#a11d736f6306e3bd0fa63673e5537bffa\">Dune::AxisAlignedCubeGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, dim, coorddim > >::type JacobianTransposed</div><div class=\"ttdoc\">Return type of jacobianTransposed.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:81</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a17b0b0e087ef3f35e29895309b28db95\"><div class=\"ttname\"><a href=\"a01111.html#a17b0b0e087ef3f35e29895309b28db95\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower)</div><div class=\"ttdoc\">Constructor from a single point only.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:159</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a1b50bd298dc8fef30918ddf4feec2a44\"><div class=\"ttname\"><a href=\"a01111.html#a1b50bd298dc8fef30918ddf4feec2a44\">Dune::AxisAlignedCubeGeometry::mydimension</a></div><div class=\"ttdeci\">static constexpr int mydimension</div><div class=\"ttdoc\">Dimension of the cube element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:56</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a1ebe13a94b0f3b53ee6bbfc46a7e37d7\"><div class=\"ttname\"><a href=\"a01111.html#a1ebe13a94b0f3b53ee6bbfc46a7e37d7\">Dune::AxisAlignedCubeGeometry::referenceElement</a></div><div class=\"ttdeci\">friend Dune::ReferenceElements< ctype, dim >::ReferenceElement referenceElement(const AxisAlignedCubeGeometry &)</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:316</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a2051b5fe381448aabaa2ca3f26a4963b\"><div class=\"ttname\"><a href=\"a01111.html#a2051b5fe381448aabaa2ca3f26a4963b\">Dune::AxisAlignedCubeGeometry::coorddimension</a></div><div class=\"ttdeci\">static constexpr int coorddimension</div><div class=\"ttdoc\">Dimension of the world space that the cube element is embedded in.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:59</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a33df6a4b1c8e398863d63aa52e920962\"><div class=\"ttname\"><a href=\"a01111.html#a33df6a4b1c8e398863d63aa52e920962\">Dune::AxisAlignedCubeGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int k) const</div><div class=\"ttdoc\">Return world coordinates of the k-th corner of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:269</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a36fc1d628b0b0dd16aa01312ee5062e5\"><div class=\"ttname\"><a href=\"a01111.html#a36fc1d628b0b0dd16aa01312ee5062e5\">Dune::AxisAlignedCubeGeometry::Volume</a></div><div class=\"ttdeci\">ctype Volume</div><div class=\"ttdoc\">Type used for volume.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:71</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a3cc835b7d048ee36b8a82c76f7831b84\"><div class=\"ttname\"><a href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">Dune::AxisAlignedCubeGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, dim > LocalCoordinate</div><div class=\"ttdoc\">Type used for a vector of element coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:65</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a61bdb36ecf5c1256cdb15492a7506d1c\"><div class=\"ttname\"><a href=\"a01111.html#a61bdb36ecf5c1256cdb15492a7506d1c\">Dune::AxisAlignedCubeGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Jacobian transposed of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:205</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a71d098bffa1d31ab450bd91720753d80\"><div class=\"ttname\"><a href=\"a01111.html#a71d098bffa1d31ab450bd91720753d80\">Dune::AxisAlignedCubeGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddim > GlobalCoordinate</div><div class=\"ttdoc\">Type used for a vector of world coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:68</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a779ee40aa6b43ea76bdca292992fede4\"><div class=\"ttname\"><a href=\"a01111.html#a779ee40aa6b43ea76bdca292992fede4\">Dune::AxisAlignedCubeGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &global) const</div><div class=\"ttdoc\">Map a point in global (world) coordinates to element coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:189</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a81c4e2db01fa9110b7589ddcbcba56fe\"><div class=\"ttname\"><a href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">Dune::AxisAlignedCubeGeometry::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdoc\">Type used for single coordinate coefficients.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:62</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a8241c6c1f582dde442c237871da547ef\"><div class=\"ttname\"><a href=\"a01111.html#a8241c6c1f582dde442c237871da547ef\">Dune::AxisAlignedCubeGeometry::Jacobian</a></div><div class=\"ttdeci\">std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, coorddim, dim > > Jacobian</div><div class=\"ttdoc\">Return type of jacobian.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:100</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_a9f91116563201a48bf040fb3e9093bb6\"><div class=\"ttname\"><a href=\"a01111.html#a9f91116563201a48bf040fb3e9093bb6\">Dune::AxisAlignedCubeGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Type of the cube. Here: a hypercube of the correct dimension.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:164</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_aa0a26765c66a38cfead97e97255b62e5\"><div class=\"ttname\"><a href=\"a01111.html#aa0a26765c66a38cfead97e97255b62e5\">Dune::AxisAlignedCubeGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Return the number of corners of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:263</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_aaddc10afb21b0feb576ee9219bd4f6c6\"><div class=\"ttname\"><a href=\"a01111.html#aaddc10afb21b0feb576ee9219bd4f6c6\">Dune::AxisAlignedCubeGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Jacobian of the transformation from local to global coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:229</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_ac3a46cf157c0d70f505d4bde85468969\"><div class=\"ttname\"><a href=\"a01111.html#ac3a46cf157c0d70f505d4bde85468969\">Dune::AxisAlignedCubeGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, coorddim, dim > >::type JacobianInverseTransposed</div><div class=\"ttdoc\">Return type of jacobianInverseTransposed.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:91</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_acc494552b84107e253ff14843a9c65d5\"><div class=\"ttname\"><a href=\"a01111.html#acc494552b84107e253ff14843a9c65d5\">Dune::AxisAlignedCubeGeometry::integrationElement</a></div><div class=\"ttdeci\">Volume integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Return the integration element, i.e., the determinant term in the integral transformation formula.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:243</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_ad957bd96f44fc2bdcc923816087a88a5\"><div class=\"ttname\"><a href=\"a01111.html#ad957bd96f44fc2bdcc923816087a88a5\">Dune::AxisAlignedCubeGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Return center of mass of the element.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:249</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_adbd6925ff25642f14c68020c3b15532b\"><div class=\"ttname\"><a href=\"a01111.html#adbd6925ff25642f14c68020c3b15532b\">Dune::AxisAlignedCubeGeometry::AxisAlignedCubeGeometry</a></div><div class=\"ttdeci\">AxisAlignedCubeGeometry()=default</div><div class=\"ttdoc\">Constructs an empty geometry.</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_af40f429805e6956c2fda18dffc481194\"><div class=\"ttname\"><a href=\"a01111.html#af40f429805e6956c2fda18dffc481194\">Dune::AxisAlignedCubeGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Return if the element is affine. Here: yes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:311</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_af6175b1cae3c6c713aad600ad604e65c\"><div class=\"ttname\"><a href=\"a01111.html#af6175b1cae3c6c713aad600ad604e65c\">Dune::AxisAlignedCubeGeometry::JacobianInverse</a></div><div class=\"ttdeci\">std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix< ctype, dim, coorddim > > JacobianInverse</div><div class=\"ttdoc\">Return type of jacobianInverse.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:109</div></div>\n+<div class=\"ttc\" id=\"aa01111_html_af8b73bc9c38c47e185a2d0a1e0c666a7\"><div class=\"ttname\"><a href=\"a01111.html#af8b73bc9c38c47e185a2d0a1e0c666a7\">Dune::AxisAlignedCubeGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Map a point in local (element) coordinates to world coordinates.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:170</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,590 +1,438 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-hcubetriangulation.cc\n+axisalignedcubegeometry.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC\n-_\b6#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC\n-7\n-29#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-30#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-31\n-32#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-33#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n-34\n-35namespace _\bD_\bu_\bn_\be\n-36{\n-37 namespace RefinementImp\n-38 {\n-_\b4_\b6 namespace HCubeTriangulation {\n-47\n-48 // ////////////\n-49 //\n-50 // Utilities\n-51 //\n+5\n+6#ifndef DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH\n+7#define DUNE_GEOMETRY_AXISALIGNED_CUBE_GEOMETRY_HH\n+8\n+13#include <bitset>\n+14\n+15#include <dune/common/fvector.hh>\n+16#include <dune/common/fmatrix.hh>\n+17#include <dune/common/diagonalmatrix.hh>\n+18\n+19#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+21\n+22\n+23namespace _\bD_\bu_\bn_\be {\n+24\n+48 template <class CoordType, unsigned int dim, unsigned int coorddim>\n+_\b4_\b9 class _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+50 {\n+51\n 52\n-53 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn;\n-54 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn;\n-55\n-56 // ////////////////////////////////////\n-57 //\n-58 // Refine a hypercube with simplices\n-59 //\n+53 public:\n+54\n+_\b5_\b6 constexpr static int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n+57\n+_\b5_\b9 constexpr static int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = coorddim;\n 60\n-61 // forward declaration of the iterator base\n-62 template<int dimension, class CoordType, int codimension>\n-_\b6_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-64\n-65 template<int dimension_, class CoordType>\n-_\b6_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-67 {\n-68 public:\n-_\b6_\b9 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n-70\n-_\b7_\b1 typedef CoordType _\bc_\bt_\by_\bp_\be;\n+_\b6_\b2 typedef CoordType _\bc_\bt_\by_\bp_\be;\n+63\n+_\b6_\b5 typedef FieldVector<ctype,dim> _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n+66\n+_\b6_\b8 typedef FieldVector<ctype,coorddim> _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be;\n+69\n+_\b7_\b1 typedef _\bc_\bt_\by_\bp_\be _\bV_\bo_\bl_\bu_\bm_\be;\n 72\n-73 template<int codimension>\n-74 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b7_\b5 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b6 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b7_\b7 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b8 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-79\n-80 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n-81 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-82 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n-83\n-84 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n-85 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-_\b8_\b6 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n-87 private:\n-88 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, 0>;\n-89 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n-90\n-91 typedef _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-92 };\n-93\n-94 template<int dimension, class CoordType>\n-95 template<int codimension>\n-_\b9_\b6 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-97 {\n-98 class SubEntityIterator;\n-_\b9_\b9 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-100 };\n+79 typedef typename std::conditional<dim==coorddim,\n+80 DiagonalMatrix<ctype,dim>,\n+_\b8_\b1 FieldMatrix<ctype,dim,coorddim> >_\b:_\b:_\bt_\by_\bp_\be _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n+82\n+89 typedef typename std::conditional<dim==coorddim,\n+90 DiagonalMatrix<ctype,dim>,\n+_\b9_\b1 FieldMatrix<ctype,coorddim,dim> >_\b:_\b:_\bt_\by_\bp_\be _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd;\n+92\n+_\b1_\b0_\b0 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = std::conditional_t<dim==coorddim,\n+DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,coorddim,dim> >;\n 101\n-102 template<int dimension, class CoordType>\n-103 int\n-_\b1_\b0_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-105_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n-106 {\n-107 return BackendRefinement::nVertices(nIntervals) * factorial(int\n-(dimension));\n-108 }\n-109\n-110 template<int dimension, class CoordType>\n-111 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b1_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-113_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-114 {\n-115 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-116 }\n-117\n-118 template<int dimension, class CoordType>\n-119 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b2_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-121_\b _\bv_\bE_\bn_\bd(int nIntervals)\n-122 {\n-123 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-124 }\n-125\n-126 template<int dimension, class CoordType>\n-127 int\n-_\b1_\b2_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-129_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n-130 {\n-131 return BackendRefinement::nElements(nIntervals) * factorial(int\n-(dimension));\n-132 }\n-133\n-134 template<int dimension, class CoordType>\n-135 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b3_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-137_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-138 {\n-139 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-140 }\n-141\n-142 template<int dimension, class CoordType>\n-143 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b4_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-145_\b _\be_\bE_\bn_\bd(int nIntervals)\n-146 {\n-147 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-148 }\n-149\n-150 // //////////////\n-151 //\n-152 // The iterator\n-153 //\n+_\b1_\b0_\b9 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = std::conditional_t<dim==coorddim,\n+DiagonalMatrix<ctype,dim>, FieldMatrix<ctype,dim,coorddim> >;\n+110\n+_\b1_\b1_\b8 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n+119\n+_\b1_\b2_\b4 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower,\n+125 const Dune::FieldVector<ctype,coorddim> upper)\n+126 : lower_(lower),\n+127 upper_(upper),\n+128 axes_()\n+129 {\n+130 static_assert(dim==coorddim, \"Use this constructor only if\n+dim==coorddim!\");\n+131 // all 'true', but is never actually used\n+132 axes_ = (1<<coorddim)-1;\n+133 }\n+134\n+_\b1_\b4_\b2 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower,\n+143 const Dune::FieldVector<ctype,coorddim> upper,\n+144 const std::bitset<coorddim>& axes)\n+145 : lower_(lower),\n+146 upper_(upper),\n+147 axes_(axes)\n+148 {\n+149 assert(axes.count()==dim);\n+150 for (size_t i=0; i<coorddim; i++)\n+151 if (not axes_[i])\n+152 upper_[i] = lower_[i];\n+153 }\n 154\n-155 // vertices\n-156 template<int dimension, class CoordType>\n-_\b1_\b5_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n-158 {\n-159 public:\n-_\b1_\b6_\b0 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b6_\b1 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b1_\b6_\b2 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-163\n-164 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-165\n-166 void increment();\n-167\n-168 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-169\n-170 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n-171\n-172 int index() const;\n-173 protected:\n-_\b1_\b7_\b4 typedef typename Refinement::BackendRefinement _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b7_\b5 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b1_\b7_\b6 constexpr static int nKuhnSimplices = factorial(int(dimension));\n-177\n-_\b1_\b7_\b8 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-179\n-_\b1_\b8_\b0 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b1_\b8_\b1 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b1_\b8_\b2 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-183 };\n-184\n-185 template<int dimension, class CoordType>\n-_\b1_\b8_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-187_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-188 : nIntervals_(nIntervals), kuhnIndex(0),\n-189 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vBegin(nIntervals_)),\n-190 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vEnd(nIntervals_))\n-191 {\n-192 if (end)\n-193 kuhnIndex = nKuhnSimplices;\n-194 }\n-195\n-196 template<int dimension, class CoordType>\n-197 void\n-_\b1_\b9_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-199_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-200 {\n-201 ++backend;\n-202 if (backend == backendEnd)\n-203 {\n-204 backend = BackendRefinement::vBegin(nIntervals_);\n-205 ++kuhnIndex;\n-206 }\n-207 }\n+_\b1_\b5_\b9 _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by(const Dune::FieldVector<ctype,coorddim> lower)\n+160 : lower_(lower)\n+161 {}\n+162\n+_\b1_\b6_\b4 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be() const\n+165 {\n+166 return GeometryTypes::cube(dim);\n+167 }\n+168\n+_\b1_\b7_\b0 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl(const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+171 {\n+172 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n+173 if (dim == coorddim) { // fast case\n+174 for (size_t i=0; i<coorddim; i++)\n+175 result[i] = lower_[i] + _\bl_\bo_\bc_\ba_\bl[i]*(upper_[i] - lower_[i]);\n+176 } else if (dim == 0) { // a vertex -- the other fast case\n+177 result = lower_; // hope for named-return-type-optimization\n+178 } else { // slow case\n+179 size_t lc=0;\n+180 for (size_t i=0; i<coorddim; i++)\n+181 result[i] = (axes_[i])\n+182 ? lower_[i] + _\bl_\bo_\bc_\ba_\bl[lc++]*(upper_[i] - lower_[i])\n+183 : lower_[i];\n+184 }\n+185 return result;\n+186 }\n+187\n+_\b1_\b8_\b9 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl(const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bg_\bl_\bo_\bb_\ba_\bl) const\n+190 {\n+191 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n+192 if (dim == coorddim) { // fast case\n+193 for (size_t i=0; i<dim; i++)\n+194 result[i] = (_\bg_\bl_\bo_\bb_\ba_\bl[i] - lower_[i]) / (upper_[i] - lower_[i]);\n+195 } else if (dim != 0) { // slow case\n+196 size_t lc=0;\n+197 for (size_t i=0; i<coorddim; i++)\n+198 if (axes_[i])\n+199 result[lc++] = (_\bg_\bl_\bo_\bb_\ba_\bl[i] - lower_[i]) / (upper_[i] - lower_[i]);\n+200 }\n+201 return result;\n+202 }\n+203\n+_\b2_\b0_\b5 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd([[maybe_unused]] const\n+_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+206 {\n+207 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd result;\n 208\n-209 template<int dimension, class CoordType>\n-210 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b2_\b1_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-212_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-213 {\n-214 return referenceToKuhn(backend.coords(), getPermutation<dimension>\n-(kuhnIndex));\n-215 }\n-216\n-217 template<int dimension, class CoordType>\n-218 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b2_\b1_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n-const\n-220 {\n-221 std::vector<CoordVector> corners(1);\n-222 corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>\n-(kuhnIndex));\n-223 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n-224 }\n-225\n-226 template<int dimension, class CoordType>\n-227 int\n-_\b2_\b2_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-229_\b _\bi_\bn_\bd_\be_\bx() const\n+209 // Actually compute the result. Uses different methods depending\n+210 // on what kind of matrix JacobianTransposed is.\n+211 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(result);\n+212\n+213 return result;\n+214 }\n+215\n+_\b2_\b1_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd([[maybe_unused]] const\n+_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+218 {\n+219 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd result;\n+220\n+221 // Actually compute the result. Uses different methods depending\n+222 // on what kind of matrix JacobianTransposed is.\n+223 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(result);\n+224\n+225 return result;\n+226 }\n+227\n+_\b2_\b2_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n 230 {\n-231 return kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index\n-();\n+231 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl).transposed();\n 232 }\n 233\n-234 // elements\n-235 template<int dimension, class CoordType>\n-_\b2_\b3_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-237 {\n-238 public:\n-_\b2_\b3_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b4_\b0 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b1 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b2 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-243\n-244 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals_, bool end = false);\n-245 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(const _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b> &other);\n-246\n-247 void increment();\n-248\n-249 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-250 int index() const;\n-251 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-252\n-253 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n-254\n-255 private:\n-256 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n-257\n-258 protected:\n-_\b2_\b5_\b9 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b6_\b0 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b2_\b6_\b1 constexpr static int nKuhnSimplices = factorial(dimension);\n-262\n-_\b2_\b6_\b3 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-264\n-_\b2_\b6_\b5 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b2_\b6_\b6 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b2_\b6_\b7 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-268 };\n-269\n-270 template<int dimension, class CoordType>\n-_\b2_\b7_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-272_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-273 : nIntervals_(nIntervals), kuhnIndex(0),\n-274 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eBegin(nIntervals_)),\n-275 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eEnd(nIntervals_))\n-276 {\n-277 if (end)\n-278 kuhnIndex = nKuhnSimplices;\n-279 }\n-280 template<int dimension, class CoordType>\n-_\b2_\b8_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-282_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(const _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b> &other)\n-283 : nIntervals_(other.nIntervals_), kuhnIndex(other.kuhnIndex),\n-284 backend(other.backend),\n-285 backendEnd(other.backendEnd)\n-286 {}\n-287\n-288 template<int dimension, class CoordType>\n-289 void\n-_\b2_\b9_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-291_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-292 {\n-293 ++backend;\n-294 if (backend == backendEnd)\n-295 {\n-296 backend = BackendRefinement::eBegin(nIntervals_);\n-297 ++kuhnIndex;\n-298 }\n-299 }\n-300\n-301 template<int dimension, class CoordType>\n-302 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b0_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-304_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-305 {\n-306 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices = backend.vertexIndices();\n-307\n-308 int base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);\n-309 indices += base;\n-310\n-311 return indices;\n-312 }\n-313\n-314 template<int dimension, class CoordType>\n-315 int\n-_\b3_\b1_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-317_\b _\bi_\bn_\bd_\be_\bx() const\n-318 {\n-319 return kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index\n-();\n-320 }\n-321\n-322 template<int dimension, class CoordType>\n-323 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-325_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-326 {\n-327 return global(backend.coords());\n-328 }\n-329\n-330 template<int dimension, class CoordType>\n-331 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b3_\b3_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by () const\n-333 {\n-334 const typename BackendIterator::Geometry &bgeo =\n-335 backend.geometry();\n-336 std::vector<CoordVector> corners(dimension+1);\n-337 for(int i = 0; i <= dimension; ++i)\n-338 corners[i] = global(bgeo.corner(i));\n-339\n-340 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(bgeo.type(), corners);\n-341 }\n-342\n-343 template<int dimension, class CoordType>\n-344 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-345 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-346_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const\n-347 {\n-348 return referenceToKuhn(local, getPermutation<dimension>(kuhnIndex));\n-349 }\n-350\n-351 // common\n-352 template<int dimension, class CoordType>\n-353 template<int codimension>\n-_\b3_\b5_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-355 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n-CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-356 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n-357 {\n-358 public:\n-_\b3_\b5_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b3_\b6_\b0 typedef SubEntityIterator _\bT_\bh_\bi_\bs;\n+_\b2_\b3_\b5 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n+_\bl_\bo_\bc_\ba_\bl) const\n+236 {\n+237 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl).transposed();\n+238 }\n+239\n+_\b2_\b4_\b3 _\bV_\bo_\bl_\bu_\bm_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt([[maybe_unused]] const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl)\n+const\n+244 {\n+245 return _\bv_\bo_\bl_\bu_\bm_\be();\n+246 }\n+247\n+_\b2_\b4_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br() const\n+250 {\n+251 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n+252 if (dim==0)\n+253 result = lower_;\n+254 else {\n+255 // Since lower_==upper_ for unused coordinates, this always does the right\n+thing\n+256 for (size_t i=0; i<coorddim; i++)\n+257 result[i] = CoordType(0.5) * (lower_[i] + upper_[i]);\n+258 }\n+259 return result;\n+260 }\n+261\n+_\b2_\b6_\b3 int _\bc_\bo_\br_\bn_\be_\br_\bs() const\n+264 {\n+265 return 1<<dim;\n+266 }\n+267\n+_\b2_\b6_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br(int k) const\n+270 {\n+271 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be result;\n+272 if (dim == coorddim) { // fast case\n+273 for (size_t i=0; i<coorddim; i++)\n+274 result[i] = (k & (1<<i)) ? upper_[i] : lower_[i];\n+275 } else if (dim == 0) { // vertex\n+276 result = lower_; // rely on named return-type optimization\n+277 } else { // slow case\n+278 unsigned int mask = 1;\n+279\n+280 for (size_t i=0; i<coorddim; i++) {\n+281 if (not axes_[i])\n+282 result[i] = lower_[i];\n+283 else {\n+284 result[i] = (k & mask) ? upper_[i] : lower_[i];\n+285 mask = (mask<<1);\n+286 }\n+287 }\n+288 }\n+289\n+290\n+291 return result;\n+292 }\n+293\n+_\b2_\b9_\b5 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be() const\n+296 {\n+297 _\bc_\bt_\by_\bp_\be vol = 1;\n+298 if (dim == coorddim) { // fast case\n+299 for (size_t i=0; i<dim; i++)\n+300 vol *= upper_[i] - lower_[i];\n+301 // do nothing if dim == 0\n+302 } else if (dim != 0) { // slow case\n+303 for (size_t i=0; i<coorddim; i++)\n+304 if (axes_[i])\n+305 vol *= upper_[i] - lower_[i];\n+306 }\n+307 return vol;\n+308 }\n+309\n+_\b3_\b1_\b1 bool _\ba_\bf_\bf_\bi_\bn_\be() const\n+312 {\n+313 return true;\n+314 }\n+315\n+_\b3_\b1_\b6 friend typename _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt ( const _\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by & /* geometry */ )\n+317 {\n+318 return _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bc_\bu_\bb_\be();\n+319 }\n+320\n+321 private:\n+322 // jacobianTransposed: fast case --> diagonal matrix\n+323 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( DiagonalMatrix<ctype,dim> &_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd )\n+const\n+324 {\n+325 for (size_t i=0; i<dim; i++)\n+326 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd.diagonal()[i] = upper_[i] - lower_[i];\n+327 }\n+328\n+329 // jacobianTransposed: slow case --> dense matrix\n+330 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( FieldMatrix<ctype,dim,coorddim>\n+&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n+331 {\n+332 if (dim==0)\n+333 return;\n+334\n+335 size_t lc = 0;\n+336 for (size_t i=0; i<coorddim; i++)\n+337 if (axes_[i])\n+338 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd[lc++][i] = upper_[i] - lower_[i];\n+339 }\n+340\n+341 // jacobianInverseTransposed: fast case --> diagonal matrix\n+342 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( DiagonalMatrix<ctype,dim>\n+&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n+343 {\n+344 for (size_t i=0; i<dim; i++)\n+345 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd.diagonal()[i] = CoordType(1.0) / (upper_[i] -\n+lower_[i]);\n+346 }\n+347\n+348 // jacobianInverseTransposed: slow case --> dense matrix\n+349 void _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ( FieldMatrix<ctype,coorddim,dim>\n+&_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd ) const\n+350 {\n+351 if (dim==0)\n+352 return;\n+353\n+354 size_t lc = 0;\n+355 for (size_t i=0; i<coorddim; i++)\n+356 if (axes_[i])\n+357 _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd[i][lc++] = CoordType(1.0) / (upper_[i] - lower_\n+[i]);\n+358 }\n+359\n+360 Dune::FieldVector<ctype,coorddim> lower_;\n 361\n-_\b3_\b6_\b2 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n+362 Dune::FieldVector<ctype,coorddim> upper_;\n 363\n-_\b3_\b6_\b4 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n-365 protected:\n-366 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-kuhnIndex;\n-367 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-backend;\n-368 };\n-369\n-370#ifndef DOXYGEN\n-371 template<int dimension, class CoordType>\n-372 template<int codimension>\n-373 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-374_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n-375 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n-end)\n-376 {}\n-377\n-378 template<int dimension, class CoordType>\n-379 template<int codimension>\n-380 bool\n-381 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-382_\b _\be_\bq_\bu_\ba_\bl_\bs(const This &other) const\n-383 { return kuhnIndex == other.kuhnIndex && backend == other.backend; }\n-384\n-385#endif // DOXYGEN\n-386\n-387 } // namespace HCubeTriangulation\n-388 } // namespace RefinementImp\n-389\n-390 namespace RefinementImp\n-391 {\n-392 // ///////////////////////\n-393 //\n-394 // The refinement traits\n-395 //\n-396\n-397#ifndef DOXYGEN\n-398 template<unsigned topologyId, class CoordType, unsigned coerceToId,\n-399 int dim>\n-400 struct Traits<\n-401 topologyId, CoordType, coerceToId, dim,\n-402 typename _\bs_\bt_\bd::enable_if<\n-403 (dim >= 2 &&\n-404 (GeometryTypes::cube(dim).id() >> 1) ==\n-405 (topologyId >> 1) &&\n-406 (GeometryTypes::simplex(dim).id() >> 1) ==\n-407 (coerceToId >> 1)\n-408 )>::type\n-409 >\n-410 {\n-411 typedef HCubeTriangulation::RefinementImp<dim, CoordType> Imp;\n-412 };\n-413#endif\n-414\n-415 } // namespace RefinementImp\n-416} // namespace Dune\n-417\n-418#endif // DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC\n+364 std::bitset<coorddim> axes_;\n+365 };\n+366\n+367} // namespace Dune\n+368#endif\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n-This file contains the Refinement implementation for simplices (triangles,\n-tetrahedrons....\n-_\bb_\ba_\bs_\be_\b._\bc_\bc\n-This file contains the parts independent of a particular Refinement\n-implementation.\n-_\bs_\bt_\bd\n-STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n-FieldVector< int, n > getPermutation(int m)\n-Calculate permutation from it's index.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n-FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n-dimension > point, const FieldVector< int, dimension > &kuhn)\n-Map from the reference simplex to some Kuhn simplex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-Static tag representing a codimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-generic geometry implementation based on corner coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:181\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:63\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:67\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:121\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:113\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:129\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:76\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename Container::ReferenceElement ReferenceElement\n+The reference element type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bc_\bu_\bb_\be\n+static const ReferenceElement & cube()\n+get hypercube reference elements\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:168\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+A geometry implementation for axis-aligned hypercubes.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+Volume volume() const\n+Return the element volume.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:295\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const\n+Dune::FieldVector< ctype, coorddim > upper, const std::bitset< coorddim >\n+&axes)\n+Constructor from a lower left and an upper right corner.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:142\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower, const\n+Dune::FieldVector< ctype, coorddim > upper)\n+Constructor from a lower left and an upper right corner.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:124\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n+Inverse Jacobian of the transformation from local to global coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:235\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n+&local) const\n+Inverse Jacobian transposed of the transformation from local to global\n+coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:217\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n+ctype, dim, coorddim > >::type JacobianTransposed\n+Return type of jacobianTransposed.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:81\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AxisAlignedCubeGeometry(const Dune::FieldVector< ctype, coorddim > lower)\n+Constructor from a single point only.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:159\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int mydimension\n+Dimension of the cube element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:56\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+friend Dune::ReferenceElements< ctype, dim >::ReferenceElement referenceElement\n+(const AxisAlignedCubeGeometry &)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:316\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int coorddimension\n+Dimension of the world space that the cube element is embedded in.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:59\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n+GlobalCoordinate corner(int k) const\n+Return world coordinates of the k-th corner of the element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:269\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n+ctype Volume\n+Type used for volume.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:71\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, dim > LocalCoordinate\n+Type used for a vector of element coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:65\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n+Jacobian transposed of the transformation from local to global coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:205\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< ctype, coorddim > GlobalCoordinate\n+Type used for a vector of world coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:68\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n+LocalCoordinate local(const GlobalCoordinate &global) const\n+Map a point in global (world) coordinates to element coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:189\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n CoordType ctype\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< int, dimension+1 > IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:78\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:137\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:145\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:69\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:75\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:105\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:97\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension >\n-Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:99\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:178\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:180\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:161\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< dimension >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:162\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< dimension >::SubEntityIterator\n-BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:175\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:174\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:181\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:160\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:182\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:260\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:266\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:241\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:267\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:265\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:259\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:263\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:240\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:239\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< 0 >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:242\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\be_\bq_\bu_\ba_\bl_\bs\n-bool equals(const This &other) const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(int nIntervals, bool end=false)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:359\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bT_\bh_\bi_\bs\n-SubEntityIterator This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcubetriangulation.cc:360\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n+Type used for single coordinate coefficients.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:62\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n+ctype, coorddim, dim > > Jacobian\n+Return type of jacobian.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:100\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type() const\n+Type of the cube. Here: a hypercube of the correct dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:164\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n+int corners() const\n+Return the number of corners of the element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:263\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n+Jacobian jacobian(const LocalCoordinate &local) const\n+Jacobian of the transformation from local to global coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:229\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n+std::conditional< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n+ctype, coorddim, dim > >::type JacobianInverseTransposed\n+Return type of jacobianInverseTransposed.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:91\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n+Volume integrationElement(const LocalCoordinate &local) const\n+Return the integration element, i.e., the determinant term in the integral\n+transformation formula.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:243\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n+GlobalCoordinate center() const\n+Return center of mass of the element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:249\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+AxisAlignedCubeGeometry()=default\n+Constructs an empty geometry.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n+bool affine() const\n+Return if the element is affine. Here: yes.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:311\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n+std::conditional_t< dim==coorddim, DiagonalMatrix< ctype, dim >, FieldMatrix<\n+ctype, dim, coorddim > > JacobianInverse\n+Return type of jacobianInverse.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:109\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n+GlobalCoordinate global(const LocalCoordinate &local) const\n+Map a point in local (element) coordinates to world coordinates.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:170\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00197.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00197.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: pyramidtriangulation.cc File Reference</title>\n+<title>dune-geometry: convergence.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,86 +65,33 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">pyramidtriangulation.cc File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">convergence.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include "<a class=\"el\" href=\"a00206_source.html\">base.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00200_source.html\">simplex.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <cmath></code><br />\n+<code>#include <limits></code><br />\n </div>\n <p><a href=\"a00197_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n-Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01311.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the refinement of a pyramid into simplices. <a href=\"a01311.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01315.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01319.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01323.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01327.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00273\" id=\"r_a00273\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00273.html\">Dune::RefinementImp::PyramidTriangulation</a></td></tr>\n-<tr class=\"memdesc:a00273\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating pyramids (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\" title=\"Four sided pyramid in three dimensions.\">GeometryType::pyramid</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:a5f431ee98541c17b3d9aea2dbc726941\" id=\"r_a5f431ee98541c17b3d9aea2dbc726941\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00197.html#a5f431ee98541c17b3d9aea2dbc726941\">DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</a></td></tr>\n-<tr class=\"separator:a5f431ee98541c17b3d9aea2dbc726941\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n-Functions</h2></td></tr>\n-<tr class=\"memitem:a3c4d43135632c0bc83dca6491c2fd16c\" id=\"r_a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">Dune::RefinementImp::PyramidTriangulation::transformCoordinate</a> (FieldVector< CoordType, dimension > point)</td></tr>\n-<tr class=\"separator:a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"a5f431ee98541c17b3d9aea2dbc726941\" name=\"a5f431ee98541c17b3d9aea2dbc726941\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5f431ee98541c17b3d9aea2dbc726941\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,59 +1,17 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-pyramidtriangulation.cc File Reference\n-#include <dune/common/fvector.hh>\n-#include <dune/common/typetraits.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+convergence.hh File Reference\n+#include <cmath>\n+#include <limits>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0 Implementation of the refinement of a pyramid into simplices. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n- This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n-\u00a0 triangulating pyramids (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\by_\br_\ba_\bm_\bi_\bd -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:\n- _\bs_\bi_\bm_\bp_\bl_\be_\bx)\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bP_\bY_\bR_\bA_\bM_\bI_\bD_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<int dimension, class CoordType >\n-FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:\n- _\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n- (FieldVector< CoordType, dimension >\n- point)\n-\u00a0\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_P\bPY\bYR\bRA\bAM\bMI\bID\bDT\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00197_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00197_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: pyramidtriangulation.cc Source File</title>\n+<title>dune-geometry: convergence.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,524 +70,44 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">pyramidtriangulation.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">convergence.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00197.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00197.html#a5f431ee98541c17b3d9aea2dbc726941\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cmath></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <limits></span></div>\n <div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span> </div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">base.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00200.html\">simplex.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n-<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00273.html\"> 26</a></span> <span class=\"keyword\">namespace </span>PyramidTriangulation</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// ////////////</span></div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Utilities</span></div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Simplex::getPermutation</a>;</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Simplex::referenceToKuhn</a>;</div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> </div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// ////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// Refine a pyramid with simplices</span></div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">// forward declaration of the iterator base</span></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01307.html\"> 43</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">/*</span></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"comment\"> * The permutations 0 and 1 of the Kuhn-decomposition of a cube into simplices form a pyramid.</span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"comment\"> * The resulting pyramid is not oriented the same as the reference pyramid and so the Kuhn-coordinates</span></div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span><span class=\"comment\"> * have to be transformed using the method below.</span></div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"comment\"> */</span></div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType> FieldVector<CoordType, dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00051\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\"> 51</a></span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>( FieldVector<CoordType, dimension> point)</div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> {</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> FieldVector<CoordType, dimension> transform;</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> transform[0]=1-point[0];</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> transform[1]=1-point[1];</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> transform[2]=point[2];</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keywordflow\">return</span> transform;</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> </div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00067\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html\"> 67</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> {</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\"> 70</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a> = dimension_;</div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> </div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\"> 72</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\">ctype</a>;</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01315.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\"> 76</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01315.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\"> 77</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\"> 78</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01315.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\"> 79</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a15d10024428cb4136290fa22c2c68374\"> 87</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, 0>;</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, <a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>>;</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">Simplex::RefinementImp<dimension, CoordType></a> <a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> </div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> </div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00100\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01315.html\"> 100</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01315.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> {</div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\"> 103</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01151.html\">Dune::MultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> </div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\"> 108</a></span> <a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span><a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> {</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keywordflow\">return</span> BackendRefinement::nVertices(nIntervals) * nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> </div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00116\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\"> 116</a></span> <a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span><a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\"> 124</a></span> <a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span><a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00132\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\"> 132</a></span> <a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span><a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> {</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keywordflow\">return</span> BackendRefinement::nElements(nIntervals) * nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> </div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00140\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\"> 140</a></span> <a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span><a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> {</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00148\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\"> 148</a></span> <a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span><a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> {</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">// //////////////</span></div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// The iterator</span></div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> </div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"comment\">// vertices</span></div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00161\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html\"> 161</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> {</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\"> 164</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\"> 165</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\"> 166</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> </div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> </div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <a class=\"code hl_typedef\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> </div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> </div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a89abd492b0117164555202003e024b85\"> 178</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::BackendRefinement <a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\"> 179</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a846f8629ff7b651eaaf8cf21293f3d14\"> 180</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#afed7468a6289d9942692c502b24042fb\"> 182</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01319.html#afed7468a6289d9942692c502b24042fb\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> </div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\"> 184</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\"> 185</a></span> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\"> 186</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> </div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00190\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ae0a9bc09a85835b81cc07b4da4edd3dd\"> 190</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><a class=\"code hl_class\" href=\"a01307.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> backend(<a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>::vBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> backendEnd(<a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>::vEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> {</div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> </div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00202\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ab0d4fc7d88bb0411e6620532812bf2ac\"> 202</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><a class=\"code hl_class\" href=\"a01307.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> {</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">if</span>(backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> {</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> backend = BackendRefinement::vBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> }</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00215\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ada6b99cefed7fcc1488c07503265cef3\"> 215</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span><a class=\"code hl_class\" href=\"a01307.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> getPermutation<dimension>(kuhnIndex)));</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> </div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00224\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a43cec2c82f56374e62bab02d914c899c\"> 224</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> std::vector<CoordVector> corners(1);</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>(kuhnIndex));</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> </div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00233\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a2a4ef1c16ecc8198811bee640920008b\"> 233</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span><a class=\"code hl_class\" href=\"a01307.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> </div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"comment\">// elements</span></div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00241\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html\"> 241</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\"> 244</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\"> 246</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\"> 247</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> </div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> </div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> </div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\"> 263</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01331.html\">Refinement::BackendRefinement</a> <a class=\"code hl_typedef\" href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\"> 264</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#ab8c922afab5c2fe4e742a4b563ee166a\"> 265</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a63f3a850cd52577598572a029592c93e\"> 267</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01323.html#a63f3a850cd52577598572a029592c93e\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> </div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\"> 269</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#ad98d8982efcca48d629defa779389d03\"> 270</a></span> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01323.html#ad98d8982efcca48d629defa779389d03\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\"> 271</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> </div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00275\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6ea422fdb0ffd1cd410326cb9e0aa16d\"> 275</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span><a class=\"code hl_class\" href=\"a01307.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> backend(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> backendEnd(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> {</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> </div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00287\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a09eec9a9901cd735d68382b9b0e83423\"> 287</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span><a class=\"code hl_class\" href=\"a01307.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> {</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> {</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> backend = BackendRefinement::eBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> }</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> </div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00300\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a75300d1090882707e3bc3633c82a1c2c\"> 300</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span><a class=\"code hl_class\" href=\"a01307.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a> indices = backend.vertexIndices();</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> </div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordtype\">int</span> base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> indices += base;</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> <span class=\"keywordflow\">return</span> indices;</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> </div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00313\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a45aadf03f6a5a2d120109f9083eaa356\"> 313</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span><a class=\"code hl_class\" href=\"a01307.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> </div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00321\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#acf5ad378f968f9b4899bbc3b40ebfdcc\"> 321</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span><a class=\"code hl_class\" href=\"a01307.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keywordflow\">return</span> global(backend.coords());</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> </div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00329\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6cfeb5d6f24977ab7a599f7b5ea71d29\"> 329</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span><a class=\"code hl_class\" href=\"a01307.html\"> geometry</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> BackendIterator::Geometry &</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> bgeo = backend.geometry();</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> std::vector<CoordVector> corners(dimension+1);</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> corners[i] = global(bgeo.corner(i));</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a>(bgeo.type(), corners);</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a>::</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> CoordVector</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span><a class=\"code hl_class\" href=\"a01307.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>(referenceToKuhn(local,</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> getPermutation<dimension>(kuhnIndex)));</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> }</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"comment\">// common</span></div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00354\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html\"> 354</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01315.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> {</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\"> 359</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\"> 360</a></span> <span class=\"keyword\">typedef</span> SubEntityIterator <a class=\"code hl_typedef\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\"> 362</a></span> <a class=\"code hl_function\" href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\"> 364</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, codimension>::kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, codimension>::backend;</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> </div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span><a class=\"code hl_class\" href=\"a01311.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> : <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> {}</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> </div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><a class=\"code hl_class\" href=\"a01311.html\"> equals</a>(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> <span class=\"keywordflow\">return</span> kuhnIndex == other.kuhnIndex && backend == other.backend;</div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> }</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> </div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> } <span class=\"comment\">// namespace PyramidTriangulation</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> </div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> {</div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"comment\">// ///////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"comment\">// The refinement traits</span></div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId></div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keyword\">struct </span>Traits<</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> topologyId, CoordType, coerceToId, 3,</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> (GeometryTypes::pyramid.id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> (topologyId >> 1) &&</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> (GeometryTypes::simplex(3).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> (coerceToId >> 1)</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> >::type></div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> {</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">typedef</span> PyramidTriangulation::RefinementImp<3, CoordType> Imp;</div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> };</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00200_html\"><div class=\"ttname\"><a href=\"a00200.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n-<div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00273_html_a3c4d43135632c0bc83dca6491c2fd16c\"><div class=\"ttname\"><a href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">Dune::RefinementImp::PyramidTriangulation::transformCoordinate</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType, dimension > point)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:51</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n-<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01151_html\"><div class=\"ttname\"><a href=\"a01151.html\">Dune::MultiLinearGeometry</a></div><div class=\"ttdoc\">generic geometry implementation based on corner coordinates</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:181</div></div>\n-<div class=\"ttc\" id=\"aa01307_html\"><div class=\"ttname\"><a href=\"a01307.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:43</div></div>\n-<div class=\"ttc\" id=\"aa01311_html\"><div class=\"ttname\"><a href=\"a01311.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp</a></div><div class=\"ttdoc\">Implementation of the refinement of a pyramid into simplices.</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:68</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a00a994a2b5116b5ab33bfeaaee7361b4\"><div class=\"ttname\"><a href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:77</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a09b4cc66964e826d3735bf14afc16739\"><div class=\"ttname\"><a href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:109</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a0d4c920b2b2a0aef2b34c25188d15595\"><div class=\"ttname\"><a href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:133</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a1f7d550c4de3da34aa425ecb9c1cd0e2\"><div class=\"ttname\"><a href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:72</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a344e29ae4188a3246c8a97f765b30aa0\"><div class=\"ttname\"><a href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:76</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a46c4d058c16aeca2091996bd5e84f8bb\"><div class=\"ttname\"><a href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:78</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a4b3583c0fa29aaeeb518ddeb22df6232\"><div class=\"ttname\"><a href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:70</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a5cc6a37d8a3f69e0d58994b6363b2ea5\"><div class=\"ttname\"><a href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:141</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_a7d82b834ffb732b0f8d39d3228caebd7\"><div class=\"ttname\"><a href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:149</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_ac8d2adc09f152cbb4a062ebbbfd4382e\"><div class=\"ttname\"><a href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:79</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_acfb07ddc9a7fc2901120e05a5d87a8f7\"><div class=\"ttname\"><a href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:117</div></div>\n-<div class=\"ttc\" id=\"aa01311_html_ae796c83df11658833765b6bd3b2f348d\"><div class=\"ttname\"><a href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:125</div></div>\n-<div class=\"ttc\" id=\"aa01315_html\"><div class=\"ttname\"><a href=\"a01315.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:101</div></div>\n-<div class=\"ttc\" id=\"aa01315_html_a3d00c79f82d7d046ba2c349be9680647\"><div class=\"ttname\"><a href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:103</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_a41f91d0f169ee3d321f54f83c7646c32\"><div class=\"ttname\"><a href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:164</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_a496cb033938611e528813a0e5332984d\"><div class=\"ttname\"><a href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:166</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_a89abd492b0117164555202003e024b85\"><div class=\"ttname\"><a href=\"a01319.html#a89abd492b0117164555202003e024b85\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:178</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_aa8b9a72d4680e462df383079340cacc2\"><div class=\"ttname\"><a href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:185</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_aae7c0557e4b027054d63198784a7d322\"><div class=\"ttname\"><a href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< dimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:179</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_ae312554d46fdc51e1abbf4c40f552d0d\"><div class=\"ttname\"><a href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:184</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_af82f8488319ff408e735cc78470a26b8\"><div class=\"ttname\"><a href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:165</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_afd0a7ee38054517b83f6b3ba59c7a0cd\"><div class=\"ttname\"><a href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:186</div></div>\n-<div class=\"ttc\" id=\"aa01319_html_afed7468a6289d9942692c502b24042fb\"><div class=\"ttname\"><a href=\"a01319.html#afed7468a6289d9942692c502b24042fb\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:182</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a3921ab3a1b4f6481eb5a38d52a0e495d\"><div class=\"ttname\"><a href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:271</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a4ba8e83d13f8f4601e51d9bb993e787c\"><div class=\"ttname\"><a href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:246</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a63f3a850cd52577598572a029592c93e\"><div class=\"ttname\"><a href=\"a01323.html#a63f3a850cd52577598572a029592c93e\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:267</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a64ae4d50e0907cf0fa7d75ec34146066\"><div class=\"ttname\"><a href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:247</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a6ce8f2832a1ca33fee47981bcb53b958\"><div class=\"ttname\"><a href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:245</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_a74ad50c02ec0f88c3d3d375aa6066055\"><div class=\"ttname\"><a href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:264</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_acc94ac070703227aeab4d6ad152f8ff1\"><div class=\"ttname\"><a href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:269</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_ad98d8982efcca48d629defa779389d03\"><div class=\"ttname\"><a href=\"a01323.html#ad98d8982efcca48d629defa779389d03\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:270</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_aeb75d564fd4d6cab1a690293a6e2eaab\"><div class=\"ttname\"><a href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:244</div></div>\n-<div class=\"ttc\" id=\"aa01323_html_af5663da34ab27394f7a0de99d6d4fffd\"><div class=\"ttname\"><a href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:263</div></div>\n-<div class=\"ttc\" id=\"aa01327_html_a1e751835a5d370ed4f8e27235240d1d9\"><div class=\"ttname\"><a href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n-<div class=\"ttc\" id=\"aa01327_html_a46163a51d8cc59117342dae398a698e0\"><div class=\"ttname\"><a href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:360</div></div>\n-<div class=\"ttc\" id=\"aa01327_html_a8c4cf4f164376a2e99b4286d9d0379bf\"><div class=\"ttname\"><a href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n-<div class=\"ttc\" id=\"aa01327_html_a9c8796e7b916331cf33db50bc736eb89\"><div class=\"ttname\"><a href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:359</div></div>\n-<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"keyword\">namespace </span>Dune::Impl {</div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span> </div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> R = <span class=\"keywordtype\">double</span>></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"keyword\">struct </span>ConvergenceOptions</div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span>{</div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> <span class=\"keywordtype\">int</span> maxIt = 100;</div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> R absTol = []{ <span class=\"keyword\">using </span>std::sqrt; <span class=\"keywordflow\">return</span> sqrt(std::numeric_limits<R>::epsilon()); }();</div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span>};</div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span>} <span class=\"comment\">// end namespace Dune::Impl</span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,606 +1,36 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-pyramidtriangulation.cc\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+convergence.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n-_\b6#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n+5#ifndef DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n+6#define DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n 7\n-8#include <dune/common/fvector.hh>\n-9#include <dune/common/typetraits.hh>\n+8#include <cmath>\n+9#include <limits>\n 10\n-11#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-12#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-13\n-14#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-15#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n-16\n-17namespace _\bD_\bu_\bn_\be\n-18{\n-19 namespace RefinementImp\n-20 {\n-_\b2_\b6 namespace PyramidTriangulation\n-27 {\n-28 // ////////////\n-29 //\n-30 // Utilities\n-31 //\n-32\n-33 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn;\n-34 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn;\n-35\n-36 // ////////////////////////////////////\n-37 //\n-38 // Refine a pyramid with simplices\n-39 //\n-40\n-41 // forward declaration of the iterator base\n-42 template<int dimension, class CoordType, int codimension>\n-_\b4_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-44\n-45 /*\n-46 * The permutations 0 and 1 of the Kuhn-decomposition of a cube into\n-simplices form a pyramid.\n-47 * The resulting pyramid is not oriented the same as the reference pyramid\n-and so the Kuhn-coordinates\n-48 * have to be transformed using the method below.\n-49 */\n-50 template<int dimension, class CoordType> FieldVector<CoordType, dimension>\n-_\b5_\b1 _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be( FieldVector<CoordType, dimension> point)\n-52 {\n-53 FieldVector<CoordType, dimension> transform;\n-54 transform[0]=1-point[0];\n-55 transform[1]=1-point[1];\n-56 transform[2]=point[2];\n-57 return transform;\n-58 }\n-59\n-66 template<int dimension_, class CoordType>\n-_\b6_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-68 {\n-69 public:\n-_\b7_\b0 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n-71\n-_\b7_\b2 typedef CoordType _\bc_\bt_\by_\bp_\be;\n-73\n-74 template<int codimension>\n-75 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b7_\b6 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b7 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b7_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b9 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-80\n-81 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n-82 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-83 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n-84\n-85 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n-86 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-_\b8_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n-88\n-89 private:\n-90 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, 0>;\n-91 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n-92\n-93 typedef _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-94\n-95 constexpr static int nKuhnSimplices = 2;\n-96 };\n-97\n-98 template<int dimension, class CoordType>\n-99 template<int codimension>\n-_\b1_\b0_\b0 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-101 {\n-102 class SubEntityIterator;\n-_\b1_\b0_\b3 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n-codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-104 };\n-105\n-106 template<int dimension, class CoordType>\n-107 int\n-_\b1_\b0_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-109_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n-110 {\n-111 return BackendRefinement::nVertices(nIntervals) * nKuhnSimplices;\n-112 }\n-113\n-114 template<int dimension, class CoordType>\n-115 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b1_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-117_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-118 {\n-119 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-120 }\n-121\n-122 template<int dimension, class CoordType>\n-123 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-125_\b _\bv_\bE_\bn_\bd(int nIntervals)\n-126 {\n-127 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-128 }\n-129\n-130 template<int dimension, class CoordType>\n-131 int\n-_\b1_\b3_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-133_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n-134 {\n-135 return BackendRefinement::nElements(nIntervals) * nKuhnSimplices;\n-136 }\n-137\n-138 template<int dimension, class CoordType>\n-139 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b4_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-141_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-142 {\n-143 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-144 }\n-145\n-146 template<int dimension, class CoordType>\n-147 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b4_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-149_\b _\be_\bE_\bn_\bd(int nIntervals)\n-150 {\n-151 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-152 }\n-153\n-154 // //////////////\n-155 //\n-156 // The iterator\n-157 //\n-158\n-159 // vertices\n-160 template<int dimension, class CoordType>\n-_\b1_\b6_\b1 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n-162 {\n-163 public:\n-_\b1_\b6_\b4 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b6_\b5 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b1_\b6_\b6 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-167\n-168 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-169\n-170 void increment();\n-171\n-172 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-173\n-174 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n-175\n-176 int index() const;\n-177 protected:\n-_\b1_\b7_\b8 typedef typename Refinement::BackendRefinement _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b7_\b9 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b1_\b8_\b0 constexpr static int nKuhnSimplices = 2;\n-181\n-_\b1_\b8_\b2 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-183\n-_\b1_\b8_\b4 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b1_\b8_\b5 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b1_\b8_\b6 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-187 };\n-188\n-189 template<int dimension, class CoordType>\n-_\b1_\b9_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-191_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-192 : nIntervals_(nIntervals), kuhnIndex(0),\n-193 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vBegin(nIntervals_)),\n-194 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vEnd(nIntervals_))\n-195 {\n-196 if (end)\n-197 kuhnIndex = nKuhnSimplices;\n-198 }\n-199\n-200 template<int dimension, class CoordType>\n-201 void\n-_\b2_\b0_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-203_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-204 {\n-205 ++backend;\n-206 if(backend == backendEnd)\n-207 {\n-208 backend = BackendRefinement::vBegin(nIntervals_);\n-209 ++kuhnIndex;\n-210 }\n-211 }\n-212\n-213 template<int dimension, class CoordType>\n-214 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b2_\b1_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-216_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-217 {\n-218 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n-219 getPermutation<dimension>(kuhnIndex)));\n-220 }\n-221\n-222 template<int dimension, class CoordType>\n-223 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b2_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n-const\n-225 {\n-226 std::vector<CoordVector> corners(1);\n-227 corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>\n-(kuhnIndex));\n-228 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n-229 }\n-230\n-231 template<int dimension, class CoordType>\n-232 int\n-_\b2_\b3_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-234_\b _\bi_\bn_\bd_\be_\bx() const\n-235 {\n-236 return kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index\n-();\n-237 }\n-238\n-239 // elements\n-240 template<int dimension, class CoordType>\n-_\b2_\b4_\b1 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-242 {\n-243 public:\n-_\b2_\b4_\b4 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b4_\b5 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b6 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b7 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-248\n-249 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-250\n-251 void increment();\n-252\n-253 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-254 int index() const;\n-255 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-256\n-257 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n-258\n-259 private:\n-260 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n-261\n-262 protected:\n-_\b2_\b6_\b3 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b6_\b4 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b2_\b6_\b5 constexpr static int nKuhnSimplices = 2;\n-266\n-_\b2_\b6_\b7 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-268\n-_\b2_\b6_\b9 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b2_\b7_\b0 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b2_\b7_\b1 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-272 };\n-273\n-274 template<int dimension, class CoordType>\n-_\b2_\b7_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-276_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-277 : nIntervals_(nIntervals), kuhnIndex(0),\n-278 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eBegin(nIntervals_)),\n-279 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eEnd(nIntervals_))\n-280 {\n-281 if (end)\n-282 kuhnIndex = nKuhnSimplices;\n-283 }\n-284\n-285 template<int dimension, class CoordType>\n-286 void\n-_\b2_\b8_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-288_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-289 {\n-290 ++backend;\n-291 if (backend == backendEnd)\n-292 {\n-293 backend = BackendRefinement::eBegin(nIntervals_);\n-294 ++kuhnIndex;\n-295 }\n-296 }\n-297\n-298 template<int dimension, class CoordType>\n-299 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b0_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-301_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-302 {\n-303 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices = backend.vertexIndices();\n-304\n-305 int base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);\n-306 indices += base;\n-307\n-308 return indices;\n-309 }\n-310\n-311 template<int dimension, class CoordType>\n-312 int\n-_\b3_\b1_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-314_\b _\bi_\bn_\bd_\be_\bx() const\n-315 {\n-316 return kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index\n-();\n-317 }\n-318\n-319 template<int dimension, class CoordType>\n-320 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-322_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-323 {\n-324 return global(backend.coords());\n-325 }\n-326\n-327 template<int dimension, class CoordType>\n-328 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b3_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-330_\b _\bg_\be_\bo_\bm_\be_\bt_\br_\by() const\n-331 {\n-332 const typename BackendIterator::Geometry &\n-333 bgeo = backend.geometry();\n-334 std::vector<CoordVector> corners(dimension+1);\n-335 for(int i = 0; i <= dimension; ++i)\n-336 corners[i] = global(bgeo.corner(i));\n-337\n-338 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(bgeo.type(), corners);\n-339 }\n-340\n-341 template<int dimension, class CoordType>\n-342 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>::\n-343 CoordVector\n-344 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-345_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const\n-346 {\n-347 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(local,\n-348 getPermutation<dimension>(kuhnIndex)));\n-349 }\n-350\n-351 // common\n-352 template<int dimension, class CoordType>\n-353 template<int codimension>\n-_\b3_\b5_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-355 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n-CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-356 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n-357 {\n-358 public:\n-_\b3_\b5_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b3_\b6_\b0 typedef SubEntityIterator _\bT_\bh_\bi_\bs;\n-361\n-_\b3_\b6_\b2 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n-363\n-_\b3_\b6_\b4 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n-365 protected:\n-366 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-kuhnIndex;\n-367 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-backend;\n-368 };\n-369\n-370#ifndef DOXYGEN\n-371 template<int dimension, class CoordType>\n-372 template<int codimension>\n-373 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-374_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n-375 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n-end)\n-376 {}\n-377\n-378 template<int dimension, class CoordType>\n-379 template<int codimension>\n-380 bool\n-381 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-382_\b _\be_\bq_\bu_\ba_\bl_\bs(const This &other) const\n-383 {\n-384 return kuhnIndex == other.kuhnIndex && backend == other.backend;\n-385 }\n-386#endif\n-387\n-388 } // namespace PyramidTriangulation\n-389 } // namespace RefinementImp\n-390\n-391 namespace RefinementImp\n-392 {\n-393 // ///////////////////////\n-394 //\n-395 // The refinement traits\n-396 //\n-397#ifndef DOXYGEN\n-398 template<unsigned topologyId, class CoordType, unsigned coerceToId>\n-399 struct Traits<\n-400 topologyId, CoordType, coerceToId, 3,\n-401 typename _\bs_\bt_\bd::enable_if<\n-402 (GeometryTypes::pyramid.id() >> 1) ==\n-403 (topologyId >> 1) &&\n-404 (GeometryTypes::simplex(3).id() >> 1) ==\n-405 (coerceToId >> 1)\n-406 >::type>\n-407 {\n-408 typedef PyramidTriangulation::RefinementImp<3, CoordType> Imp;\n-409 };\n-410#endif\n-411\n-412 } // namespace RefinementImp\n-413} // namespace Dune\n-414\n-415#endif // DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n-_\bt_\by_\bp_\be_\b._\bh_\bh\n-A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n-This file contains the Refinement implementation for simplices (triangles,\n-tetrahedrons....\n-_\bb_\ba_\bs_\be_\b._\bc_\bc\n-This file contains the parts independent of a particular Refinement\n-implementation.\n-_\bs_\bt_\bd\n-STL namespace.\n-_\bD_\bu_\bn_\be\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType,\n-dimension > point)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:51\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n-FieldVector< int, n > getPermutation(int m)\n-Calculate permutation from it's index.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n-FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n-dimension > point, const FieldVector< int, dimension > &kuhn)\n-Map from the reference simplex to some Kuhn simplex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-Static tag representing a codimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-generic geometry implementation based on corner coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:181\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:43\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-Implementation of the refinement of a pyramid into simplices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:68\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:109\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:133\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n-CoordType ctype\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:76\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:78\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:70\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:141\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:149\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< int, dimension+1 > IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:79\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:117\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:125\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:101\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension >\n-Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:103\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:164\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< dimension >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:166\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:178\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:185\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< dimension >::SubEntityIterator\n-BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:179\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:184\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:165\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:186\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:182\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:271\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:246\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:267\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< 0 >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:247\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:245\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:264\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:269\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:270\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:244\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:263\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-_\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n-bool equals(const This &other) const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-_\b>_\b:_\b:_\bT_\bh_\bi_\bs\n-SubEntityIterator This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:360\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(int nIntervals, bool end=false)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-_\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:359\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n+11namespace Dune::Impl {\n+12\n+13template <class R = double>\n+14struct ConvergenceOptions\n+15{\n+17 int maxIt = 100;\n+18\n+20 R absTol = []{ using std::sqrt; return sqrt(std::numeric_limits<R>::epsilon\n+()); }();\n+21};\n+22\n+23} // end namespace Dune::Impl\n+24\n+25#endif // DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00200.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00200.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: simplex.cc File Reference</title>\n+<title>dune-geometry: typefromvertexcount.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,105 +65,39 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">simplex.cc File Reference</div></div>\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">typefromvertexcount.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) \n-<a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <algorithm></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/math.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00224_source.html\">dune/geometry/multilineargeometry.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include "<a class=\"el\" href=\"a00206_source.html\">base.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00200_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n-Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01335.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01343.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01347.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01351.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00274\" id=\"r_a00274\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html\">Dune::RefinementImp::Simplex</a></td></tr>\n-<tr class=\"memdesc:a00274\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:a944407dc4f6f9a372b10b69bbb5a0792\" id=\"r_a944407dc4f6f9a372b10b69bbb5a0792\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00200.html#a944407dc4f6f9a372b10b69bbb5a0792\">DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</a></td></tr>\n-<tr class=\"separator:a944407dc4f6f9a372b10b69bbb5a0792\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr><td colspan=\"2\"><div class=\"groupHeader\">Utilities</div></td></tr>\n-<tr class=\"memitem:a24c58f3248cb543a0c221c3e9c4ac9bf\" id=\"r_a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension> </td></tr>\n-<tr class=\"memitem:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">int </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">Dune::RefinementImp::Simplex::pointIndex</a> (const FieldVector< int, dimension > &point)</td></tr>\n-<tr class=\"memdesc:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">calculate the index of a given gridpoint within a Kuhn0 simplex <br /></td></tr>\n-<tr class=\"separator:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a34aeb4b15c94db3e510c0b3e10940689\" id=\"r_a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memTemplParams\" colspan=\"2\">template<int n> </td></tr>\n-<tr class=\"memitem:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< int, n > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a> (int m)</td></tr>\n-<tr class=\"memdesc:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Calculate permutation from it's index. <br /></td></tr>\n-<tr class=\"separator:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:aa6957a526f21902c037a5ff222b3f36a\" id=\"r_aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a> (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</td></tr>\n-<tr class=\"memdesc:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Map from the reference simplex to some Kuhn simplex. <br /></td></tr>\n-<tr class=\"separator:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:afd47205aa1691498b073d9681fb23f6d\" id=\"r_afd47205aa1691498b073d9681fb23f6d\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:afd47205aa1691498b073d9681fb23f6d\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">Dune::RefinementImp::Simplex::kuhnToReference</a> (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</td></tr>\n-<tr class=\"memdesc:afd47205aa1691498b073d9681fb23f6d\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Map from some Kuhn simplex to the reference simplex. <br /></td></tr>\n-<tr class=\"separator:afd47205aa1691498b073d9681fb23f6d\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a46da773c6f7d01077322c1064037e52f\" id=\"r_a46da773c6f7d01077322c1064037e52f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01367.html\">GeometryType</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">Dune::geometryTypeFromVertexCount</a> (unsigned int dim, unsigned int vertices)</td></tr>\n+<tr class=\"memdesc:a46da773c6f7d01077322c1064037e52f\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Utility function to construct the correct geometry type given the dimension and the number of vertices. <br /></td></tr>\n+<tr class=\"separator:a46da773c6f7d01077322c1064037e52f\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) </p>\n-<p>See <a class=\"el\" href=\"a00259.html\">Refinement implementation for simplices</a>. </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"a944407dc4f6f9a372b10b69bbb5a0792\" name=\"a944407dc4f6f9a372b10b69bbb5a0792\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a944407dc4f6f9a372b10b69bbb5a0792\">◆ </a></span>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,86 +1,22 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n-simplex.cc File Reference\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices (triangles,\n-tetrahedrons...) _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <algorithm>\n-#include <dune/common/fvector.hh>\n-#include <dune/common/math.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+typefromvertexcount.hh File Reference\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n- _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n- _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx\n-\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices\n- (triangles, tetrahedrons...)\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bR_\bI_\bD_\b__\bC_\bO_\bM_\bM_\bO_\bN_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bS_\bI_\bM_\bP_\bL_\bE_\bX_\b__\bC_\bC\n-\u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-Utilities\n-template<int dimension>\n- int\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx\n- (const FieldVector< int, dimension >\n- &point)\n-\u00a0 calculate the index of a given gridpoint\n- within a Kuhn0 simplex\n-\u00a0\n-template<int n>\n- FieldVector< int, n >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n- _\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn (int m)\n-\u00a0 Calculate permutation from it's index.\n-\u00a0\n-template<int dimension, class CoordType >\n-FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n- _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn (FieldVector< CoordType,\n- dimension > point, const FieldVector< int,\n- dimension > &kuhn)\n-\u00a0 Map from the reference simplex to some\n- Kuhn simplex.\n-\u00a0\n-template<int dimension, class CoordType >\n-FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n- _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be (FieldVector< CoordType,\n- dimension > point, const FieldVector< int,\n- dimension > &kuhn)\n-\u00a0 Map from some Kuhn simplex to the\n- reference simplex.\n+_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt (unsigned int dim, unsigned int\n+ vertices)\n+\u00a0 Utility function to construct the correct geometry type given the\n+ dimension and the number of vertices.\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices (triangles,\n-tetrahedrons...)\n-See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bs_\bi_\bm_\bp_\bl_\bi_\bc_\be_\bs.\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGR\bRI\bID\bD_\b_C\bCO\bOM\bMM\bMO\bON\bN_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_S\bSI\bIM\bMP\bPL\bLE\bEX\bX_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00200_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00200_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: simplex.cc Source File</title>\n+<title>dune-geometry: typefromvertexcount.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,621 +70,77 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">simplex.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">typefromvertexcount.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00200.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00200.html#a944407dc4f6f9a372b10b69bbb5a0792\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"comment\">// This file is part of DUNE, a Distributed and Unified Numerics Environment</span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"comment\">// This file is copyright (C) 2005 Jorrit Fahlke <jorrit@jorrit.de></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"comment\">// This file is licensed under version 2 of the GNU General Public License,</span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"comment\">// with a special "runtime exception." See COPYING at the top of the source</span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"comment\">// tree for the full licence.</span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span><span class=\"preprocessor\">#include <algorithm></span></div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> </div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00224.html\">dune/geometry/multilineargeometry.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> </div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">base.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> </div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keyword\">namespace </span>RefinementImp {</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00264\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html\"> 264</a></span> <span class=\"keyword\">namespace </span>Simplex {</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> </div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"comment\">// //////////////////</span></div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00280\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\"> 280</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(<span class=\"keyword\">const</span> FieldVector<int, dimension> &point)</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> {</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keywordtype\">int</span> index = 0;</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> index += Dune::binomial(dimension-i + point[i]-1, dimension-i);</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">return</span> index;</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> n></div>\n-<div class=\"foldopen\" id=\"foldopen00293\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\"> 293</a></span> FieldVector<int, n> <a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">getPermutation</a>(<span class=\"keywordtype\">int</span> m)</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> {</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> FieldVector<int, n> perm;</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < n; ++i)</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> perm[i] = i;</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> </div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordtype\">int</span> base = 1;</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 1; i <= n; ++i)</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> base *= i;</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = n; i > 0; --i) {</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> base /= i;</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordtype\">int</span> d = m / base;</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> m %= base;</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> <span class=\"keywordtype\">int</span> t = perm[i-1]; perm[i-1] = perm[i-1-d]; perm[i-1-d] = t;</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keywordflow\">return</span> perm;</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> </div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"comment\">// map between the reference simplex and some arbitrary kuhn simplex (denoted by it's permutation)</span></div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> FieldVector<CoordType, dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00322\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\"> 322</a></span> <a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">referenceToKuhn</a>( </div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> FieldVector<CoordType, dimension> point,</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">const</span> FieldVector<int, dimension> &kuhn)</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> {</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i > 0; --i)</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> point[kuhn[i-1]] += point[kuhn[i]];</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> point;</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> FieldVector<CoordType, dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00341\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\"> 341</a></span> <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>( </div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> FieldVector<CoordType, dimension> point,</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keyword\">const</span> FieldVector<int, dimension> &kuhn)</div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> {</div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension - 1; ++i)</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> point[kuhn[i]] -= point[kuhn[i+1]];</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">return</span> point;</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"comment\">// /////////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"comment\">// refinement implementation for simplices</span></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00360\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html\"> 360</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> {</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\"> 363</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a> = dimension_;</div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\"> 364</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\">ctype</a>;</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> </div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01335.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\"> 368</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01335.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\"> 369</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\"> 370</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01335.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\"> 371</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> </div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> </div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00384\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01335.html\"> 384</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01335.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> {</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// We don't need the caching, but the uncached MultiLinearGeometry has bug FS#1209</span></div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01335.html#addf3e4e65918928613e6339bf7586792\"> 388</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01159.html\">Dune::CachedMultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01335.html#addf3e4e65918928613e6339bf7586792\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> </div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00393\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\"> 393</a></span> <a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span><a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> {</div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keywordflow\">return</span> Dune::binomial(dimension + nIntervals, (<span class=\"keywordtype\">int</span>)dimension);</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> </div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00401\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\"> 401</a></span> <a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span><a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> {</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> </div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00409\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\"> 409</a></span> <a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span><a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> {</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00417\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\"> 417</a></span> <a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span><a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> {</div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals, <span class=\"keywordtype\">int</span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> </div>\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00425\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\"> 425</a></span> <a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span><a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> {</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> </div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00433\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\"> 433</a></span> <a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span><a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> {</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> </div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"comment\">// //////////////</span></div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> <span class=\"comment\">// The iterator</span></div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01339.html\"> 445</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> </div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> <span class=\"comment\">// vertices</span></div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n-<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00450\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html\"> 450</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> {</div>\n-<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\"> 453</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\"> 454</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\"> 455</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\"> 456</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension></a> <a class=\"code hl_typedef\" href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> </div>\n-<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> </div>\n-<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keywordtype\">bool</span> equals(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01343.html\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> </div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> </div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\"> 468</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a>;</div>\n-<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> </div>\n-<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\"> 470</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">size</a>;</div>\n-<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\"> 471</a></span> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a> <a class=\"code hl_variable\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">vertex</a>;</div>\n-<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> </div>\n-<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00475\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a6b8d227461aa0e88f838071bbba17dcf\"> 475</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span><a class=\"code hl_class\" href=\"a01339.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> : size(nIntervals)</div>\n-<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n-<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> vertex[0] = (end) ? size + 1 : 0;</div>\n-<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 1; i < dimension; ++ i)</div>\n-<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> vertex[i] = 0;</div>\n-<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> </div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00486\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a64d9cfdc8afd0523d0f0f59a141409d5\"> 486</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span><a class=\"code hl_class\" href=\"a01339.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> {</div>\n-<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> assert(vertex[0] <= size);</div>\n-<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i >= 0; --i) {</div>\n-<div class=\"line\"><a id=\"l00491\" name=\"l00491\"></a><span class=\"lineno\"> 491</span> ++vertex[i];</div>\n-<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"> 492</span> <span class=\"keywordflow\">if</span>(i == 0 || vertex[i] <= vertex[i-1])</div>\n-<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00494\" name=\"l00494\"></a><span class=\"lineno\"> 494</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> vertex[i] = 0;</div>\n-<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> }</div>\n-<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> </div>\n-<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"foldopen\" id=\"foldopen00501\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a8541de6687d6be58685e73e88e10b5c2\"> 501</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span><a class=\"code hl_class\" href=\"a01339.html\"> equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01343.html\">This</a> &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keywordflow\">return</span> size == other.<a class=\"code hl_variable\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">size</a> && vertex == other.<a class=\"code hl_variable\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">vertex</a>;</div>\n-<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> </div>\n-<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00509\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#aa89eae369f765aa82a19fe2353a04f6d\"> 509</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span><a class=\"code hl_class\" href=\"a01339.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a> ref = <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>(vertex, getPermutation<dimension>(0));</div>\n-<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> </div>\n-<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a> coords;</div>\n-<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> coords[i] = CoordType(ref[i]) / size;</div>\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> <span class=\"keywordflow\">return</span> coords;</div>\n-<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> </div>\n-<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00522\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ad083036185dee6854d22a64897c5eb31\"> 522</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> std::vector<CoordVector> corners(1);</div>\n-<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> corners[0] = (<a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a>)vertex;</div>\n-<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n-<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> </div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00531\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a3d08c1ebe3d142c363ce5dc489108979\"> 531</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span><a class=\"code hl_class\" href=\"a01339.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n-<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> </div>\n-<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">// elements</span></div>\n-<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> </div>\n-<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00540\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html\"> 540</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00541\" name=\"l00541\"></a><span class=\"lineno\"> 541</span> {</div>\n-<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\"> 543</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\"> 544</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\"> 545</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\"> 546</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\"> 547</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a> <a class=\"code hl_typedef\" href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> </div>\n-<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> </div>\n-<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> <span class=\"keywordtype\">bool</span> equals(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01347.html\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> </div>\n-<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> </div>\n-<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> </div>\n-<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> </div>\n-<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\"> 564</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a>;</div>\n-<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a555ec4f3b36a7c90faf0971538b96037\"> 565</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnIntervals = Dune::factorial(dimension);</div>\n-<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> </div>\n-<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\"> 567</a></span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> <a class=\"code hl_variable\" href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\">origin</a>;</div>\n-<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\"> 568</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\"> 569</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">size</a>;</div>\n-<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\"> 570</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">index_</a>;</div>\n-<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> </div>\n-<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00574\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a2cd2a203ea33064decee8c9b995455e6\"> 574</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span><a class=\"code hl_class\" href=\"a01339.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> : kuhnIndex(0), size(nIntervals), index_(0)</div>\n-<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> {</div>\n-<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> origin[i] = 0;</div>\n-<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">if</span>(end) {</div>\n-<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> index_ = Refinement::nElements(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> origin[0] = size;</div>\n-<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> }</div>\n-<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> </div>\n-<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00588\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a1b0e6424f655aa63827348ad0b78f08f\"> 588</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"> 589</span><a class=\"code hl_class\" href=\"a01339.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> {</div>\n-<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> assert(origin[0] < size);</div>\n-<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> </div>\n-<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> ++index_;</div>\n-<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> </div>\n-<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"> 595</span> <span class=\"keywordflow\">while</span>(1) {</div>\n-<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> <span class=\"keywordflow\">if</span>(kuhnIndex == nKuhnIntervals) {</div>\n-<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> kuhnIndex = 0;</div>\n-<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> <span class=\"comment\">// increment origin</span></div>\n-<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i >= 0; --i) {</div>\n-<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> ++origin[i];</div>\n-<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> <span class=\"keywordflow\">if</span>(i == 0 || origin[i] <= origin[i-1])</div>\n-<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> <span class=\"keywordflow\">else</span></div>\n-<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> origin[i] = 0;</div>\n-<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> }</div>\n-<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> }</div>\n-<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> </div>\n-<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> <span class=\"comment\">// test whether the current simplex has any corner outside the kuhn0 simplex</span></div>\n-<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);</div>\n-<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> corner = origin;</div>\n-<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> <span class=\"keywordtype\">bool</span> outside = <span class=\"keyword\">false</span>;</div>\n-<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i) {</div>\n-<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> <span class=\"comment\">// next corner</span></div>\n-<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> ++corner[perm[i]];</div>\n-<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> <span class=\"keywordflow\">if</span>(perm[i] > 0)</div>\n-<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> <span class=\"keywordflow\">if</span>(corner[perm[i]] > corner[perm[i]-1]) {</div>\n-<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> outside = <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> }</div>\n-<div class=\"line\"><a id=\"l00621\" name=\"l00621\"></a><span class=\"lineno\"> 621</span> }</div>\n-<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keywordflow\">if</span>(!outside)</div>\n-<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> <span class=\"keywordflow\">return</span>;</div>\n-<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span> }</div>\n-<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> </div>\n-<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"foldopen\" id=\"foldopen00629\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ae105d9f37c2442e31f4ddff75518c91b\"> 629</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00630\" name=\"l00630\"></a><span class=\"lineno\"> 630</span><a class=\"code hl_class\" href=\"a01339.html\"> equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01347.html\">This</a> &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> <span class=\"keywordflow\">return</span> size == other.<a class=\"code hl_variable\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">size</a> && index_ == other.<a class=\"code hl_variable\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">index_</a>;</div>\n-<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> </div>\n-<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00636\" name=\"l00636\"></a><span class=\"lineno\"> 636</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00637\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a02974d874acbce08ad56652b3a08833c\"> 637</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span><a class=\"code hl_class\" href=\"a01339.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a> indices;</div>\n-<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);</div>\n-<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> vertex = origin;</div>\n-<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> indices[0] = <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n-<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i) {</div>\n-<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> ++vertex[perm[i]];</div>\n-<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> indices[i+1] = <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n-<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> }</div>\n-<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">if</span> (kuhnIndex%2 == 1)</div>\n-<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < (dimension+1)/2; ++i) {</div>\n-<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> <span class=\"keywordtype\">int</span> t = indices[i];</div>\n-<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> indices[i] = indices[dimension-i];</div>\n-<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> indices[dimension-i] = t;</div>\n-<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> }</div>\n-<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> <span class=\"keywordflow\">return</span> indices;</div>\n-<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> </div>\n-<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00659\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a555a1436c31fc7c10a430e486c8b61a9\"> 659</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span><a class=\"code hl_class\" href=\"a01339.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> <span class=\"keywordflow\">return</span> index_;</div>\n-<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> </div>\n-<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00666\" name=\"l00666\"></a><span class=\"lineno\"> 666</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00667\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00667\" name=\"l00667\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a5e35e82e5fee1b48a7d403a8ae4ae9ec\"> 667</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"> 668</span><a class=\"code hl_class\" href=\"a01339.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> <span class=\"keywordflow\">return</span> global(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements<CoordType, dimension></a></div>\n-<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> ::simplex().position(0,0));</div>\n-<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00673\" name=\"l00673\"></a><span class=\"lineno\"> 673</span> </div>\n-<div class=\"line\"><a id=\"l00674\" name=\"l00674\"></a><span class=\"lineno\"> 674</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00675\" name=\"l00675\"></a><span class=\"lineno\"> 675</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00676\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00676\" name=\"l00676\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a4acfc4c68bf7072b5df07d6c2b4befc3\"> 676</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00677\" name=\"l00677\"></a><span class=\"lineno\"> 677</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00678\" name=\"l00678\"></a><span class=\"lineno\"> 678</span> std::vector<CoordVector> corners(dimension+1);</div>\n-<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"> 679</span> <span class=\"keyword\">auto</span> refelem = <a class=\"code hl_function\" href=\"a01099.html#ab3bf8998f1dc95d6cd86755fb892110f\">ReferenceElements<CoordType, dimension>::simplex</a>();</div>\n-<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span> corners[i] = global(refelem.position(i, dimension));</div>\n-<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a>(refelem.type(), corners);</div>\n-<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00684\" name=\"l00684\"></a><span class=\"lineno\"> 684</span> </div>\n-<div class=\"line\"><a id=\"l00685\" name=\"l00685\"></a><span class=\"lineno\"> 685</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00686\" name=\"l00686\"></a><span class=\"lineno\"> 686</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"line\"><a id=\"l00687\" name=\"l00687\"></a><span class=\"lineno\"> 687</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00688\" name=\"l00688\"></a><span class=\"lineno\"> 688</span><a class=\"code hl_class\" href=\"a01339.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const </span>{</div>\n-<div class=\"line\"><a id=\"l00689\" name=\"l00689\"></a><span class=\"lineno\"> 689</span> CoordVector v =</div>\n-<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"> 690</span> <a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">referenceToKuhn</a>(local, getPermutation<dimension>(kuhnIndex));</div>\n-<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span> v += origin;</div>\n-<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> v /= (<span class=\"keyword\">typename</span> CoordVector::value_type)size;</div>\n-<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>(v, getPermutation<dimension>(0));</div>\n-<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> }</div>\n-<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"> 695</span> </div>\n-<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> <span class=\"comment\">// common</span></div>\n-<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> </div>\n-<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00700\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html\"> 700</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01335.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> {</div>\n-<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\"> 705</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> </div>\n-<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\"> 707</a></span> <a class=\"code hl_function\" href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n-<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00711\" name=\"l00711\"></a><span class=\"lineno\"> 711</span> </div>\n-<div class=\"line\"><a id=\"l00712\" name=\"l00712\"></a><span class=\"lineno\"> 712</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00713\" name=\"l00713\"></a><span class=\"lineno\"> 713</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00714\" name=\"l00714\"></a><span class=\"lineno\"> 714</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00715\" name=\"l00715\"></a><span class=\"lineno\"> 715</span><a class=\"code hl_class\" href=\"a01331.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00716\" name=\"l00716\"></a><span class=\"lineno\"> 716</span> : <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n-<div class=\"line\"><a id=\"l00717\" name=\"l00717\"></a><span class=\"lineno\"> 717</span> {}</div>\n-<div class=\"line\"><a id=\"l00718\" name=\"l00718\"></a><span class=\"lineno\"> 718</span> </div>\n-<div class=\"line\"><a id=\"l00719\" name=\"l00719\"></a><span class=\"lineno\"> 719</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00720\" name=\"l00720\"></a><span class=\"lineno\"> 720</span> </div>\n-<div class=\"line\"><a id=\"l00721\" name=\"l00721\"></a><span class=\"lineno\"> 721</span> } <span class=\"comment\">// namespace Simplex</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00722\" name=\"l00722\"></a><span class=\"lineno\"> 722</span> </div>\n-<div class=\"line\"><a id=\"l00723\" name=\"l00723\"></a><span class=\"lineno\"> 723</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00724\" name=\"l00724\"></a><span class=\"lineno\"> 724</span> </div>\n-<div class=\"line\"><a id=\"l00725\" name=\"l00725\"></a><span class=\"lineno\"> 725</span> </div>\n-<div class=\"line\"><a id=\"l00726\" name=\"l00726\"></a><span class=\"lineno\"> 726</span> <span class=\"keyword\">namespace </span>RefinementImp {</div>\n-<div class=\"line\"><a id=\"l00727\" name=\"l00727\"></a><span class=\"lineno\"> 727</span> </div>\n-<div class=\"line\"><a id=\"l00728\" name=\"l00728\"></a><span class=\"lineno\"> 728</span> <span class=\"comment\">// ///////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00729\" name=\"l00729\"></a><span class=\"lineno\"> 729</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00730\" name=\"l00730\"></a><span class=\"lineno\"> 730</span> <span class=\"comment\">// The refinement traits</span></div>\n-<div class=\"line\"><a id=\"l00731\" name=\"l00731\"></a><span class=\"lineno\"> 731</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00732\" name=\"l00732\"></a><span class=\"lineno\"> 732</span> </div>\n-<div class=\"line\"><a id=\"l00733\" name=\"l00733\"></a><span class=\"lineno\"> 733</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00734\" name=\"l00734\"></a><span class=\"lineno\"> 734</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId,</div>\n-<div class=\"line\"><a id=\"l00735\" name=\"l00735\"></a><span class=\"lineno\"> 735</span> <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00736\" name=\"l00736\"></a><span class=\"lineno\"> 736</span> <span class=\"keyword\">struct </span>Traits<</div>\n-<div class=\"line\"><a id=\"l00737\" name=\"l00737\"></a><span class=\"lineno\"> 737</span> topologyId, CoordType, coerceToId, dim,</div>\n-<div class=\"line\"><a id=\"l00738\" name=\"l00738\"></a><span class=\"lineno\"> 738</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n-<div class=\"line\"><a id=\"l00739\" name=\"l00739\"></a><span class=\"lineno\"> 739</span> ((GeometryTypes::simplex(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00740\" name=\"l00740\"></a><span class=\"lineno\"> 740</span> (topologyId >> 1) &&</div>\n-<div class=\"line\"><a id=\"l00741\" name=\"l00741\"></a><span class=\"lineno\"> 741</span> (GeometryTypes::simplex(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00742\" name=\"l00742\"></a><span class=\"lineno\"> 742</span> (coerceToId >> 1)</div>\n-<div class=\"line\"><a id=\"l00743\" name=\"l00743\"></a><span class=\"lineno\"> 743</span> )>::type</div>\n-<div class=\"line\"><a id=\"l00744\" name=\"l00744\"></a><span class=\"lineno\"> 744</span> ></div>\n-<div class=\"line\"><a id=\"l00745\" name=\"l00745\"></a><span class=\"lineno\"> 745</span> {</div>\n-<div class=\"line\"><a id=\"l00746\" name=\"l00746\"></a><span class=\"lineno\"> 746</span> <span class=\"keyword\">typedef</span> Simplex::RefinementImp<dim, CoordType> Imp;</div>\n-<div class=\"line\"><a id=\"l00747\" name=\"l00747\"></a><span class=\"lineno\"> 747</span> };</div>\n-<div class=\"line\"><a id=\"l00748\" name=\"l00748\"></a><span class=\"lineno\"> 748</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00749\" name=\"l00749\"></a><span class=\"lineno\"> 749</span> </div>\n-<div class=\"line\"><a id=\"l00750\" name=\"l00750\"></a><span class=\"lineno\"> 750</span> </div>\n-<div class=\"line\"><a id=\"l00751\" name=\"l00751\"></a><span class=\"lineno\"> 751</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00752\" name=\"l00752\"></a><span class=\"lineno\"> 752</span> </div>\n-<div class=\"line\"><a id=\"l00753\" name=\"l00753\"></a><span class=\"lineno\"> 753</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00754\" name=\"l00754\"></a><span class=\"lineno\"> 754</span> </div>\n-<div class=\"line\"><a id=\"l00755\" name=\"l00755\"></a><span class=\"lineno\"> 755</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">//DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00224_html\"><div class=\"ttname\"><a href=\"a00224.html\">multilineargeometry.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span> </div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> <span class=\"keyword\">inline</span></div>\n+<div class=\"foldopen\" id=\"foldopen00017\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\"> 17</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">geometryTypeFromVertexCount</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> vertices)</div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> {</div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keywordflow\">switch</span> (dim)</div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> <span class=\"keywordflow\">case</span> 0 :</div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> <span class=\"keywordflow\">return</span> GeometryTypes::vertex;</div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> <span class=\"keywordflow\">case</span> 1 :</div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> <span class=\"keywordflow\">return</span> GeometryTypes::line;</div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"keywordflow\">case</span> 2 :</div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"keywordflow\">switch</span> (vertices) {</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"keywordflow\">case</span> 3 :</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"keywordflow\">return</span> GeometryTypes::triangle;</div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"keywordflow\">case</span> 4 :</div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"keywordflow\">return</span> GeometryTypes::quadrilateral;</div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> default :</div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"2d elements with "</span> << vertices << <span class=\"stringliteral\">" corners are not supported!"</span>);</div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> }</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keywordflow\">case</span> 3 :</div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keywordflow\">switch</span> (vertices) {</div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keywordflow\">case</span> 4 :</div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"keywordflow\">return</span> GeometryTypes::tetrahedron;</div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"keywordflow\">case</span> 5 :</div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keywordflow\">return</span> GeometryTypes::pyramid;</div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keywordflow\">case</span> 6 :</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keywordflow\">return</span> GeometryTypes::prism;</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keywordflow\">case</span> 8 :</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">return</span> GeometryTypes::hexahedron;</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> default :</div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"3d elements with "</span> << vertices << <span class=\"stringliteral\">" corners are not supported!"</span>);</div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> }</div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> default :</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"geometryTypeFromVertexCount works only up to dim=3"</span>);</div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> }</div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span>}</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> </div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_a24c58f3248cb543a0c221c3e9c4ac9bf\"><div class=\"ttname\"><a href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">Dune::RefinementImp::Simplex::pointIndex</a></div><div class=\"ttdeci\">int pointIndex(const FieldVector< int, dimension > &point)</div><div class=\"ttdoc\">calculate the index of a given gridpoint within a Kuhn0 simplex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:280</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_afd47205aa1691498b073d9681fb23f6d\"><div class=\"ttname\"><a href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">Dune::RefinementImp::Simplex::kuhnToReference</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > kuhnToReference(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from some Kuhn simplex to the reference simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:341</div></div>\n-<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_ab3bf8998f1dc95d6cd86755fb892110f\"><div class=\"ttname\"><a href=\"a01099.html#ab3bf8998f1dc95d6cd86755fb892110f\">Dune::Geo::ReferenceElements::simplex</a></div><div class=\"ttdeci\">static const ReferenceElement & simplex()</div><div class=\"ttdoc\">get simplex reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:162</div></div>\n-<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01159_html\"><div class=\"ttname\"><a href=\"a01159.html\">Dune::CachedMultiLinearGeometry</a></div><div class=\"ttdoc\">Implement a MultiLinearGeometry with additional caching.</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:526</div></div>\n-<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a073d09d99f41ea5ef73d02e760fd8a7c\"><div class=\"ttname\"><a href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">Dune::RefinementImp::Simplex::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:368</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a1490fdf6fede759f9ffe9c53ea8268fc\"><div class=\"ttname\"><a href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">Dune::RefinementImp::Simplex::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:371</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a3b3bd0b4978390f33925e1621599e7f9\"><div class=\"ttname\"><a href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\">Dune::RefinementImp::Simplex::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:364</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a4f9985b41f044be2dfeeadf25a13e6df\"><div class=\"ttname\"><a href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">Dune::RefinementImp::Simplex::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:394</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a64285f89c04e48cff0acdbab590a077f\"><div class=\"ttname\"><a href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">Dune::RefinementImp::Simplex::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:418</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a822e973258df4379d9157e340b1a9c4b\"><div class=\"ttname\"><a href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">Dune::RefinementImp::Simplex::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:434</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_a9ed5d63dabd62864aeae480528d2896f\"><div class=\"ttname\"><a href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">Dune::RefinementImp::Simplex::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:410</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_aa6fba069911d6201fdb495f19f4bc992\"><div class=\"ttname\"><a href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">Dune::RefinementImp::Simplex::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:370</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_ab3422933c006c3554027298c991e743c\"><div class=\"ttname\"><a href=\"a01331.html#ab3422933c006c3554027298c991e743c\">Dune::RefinementImp::Simplex::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:402</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_ac05c63c995a73440a799ef3ff95ceccb\"><div class=\"ttname\"><a href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">Dune::RefinementImp::Simplex::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:426</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_ac26719cc73c3fb028c88622f58f22cc8\"><div class=\"ttname\"><a href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">Dune::RefinementImp::Simplex::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:369</div></div>\n-<div class=\"ttc\" id=\"aa01331_html_add6299860dc277ceea50c62e3ad5d78d\"><div class=\"ttname\"><a href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">Dune::RefinementImp::Simplex::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:363</div></div>\n-<div class=\"ttc\" id=\"aa01335_html\"><div class=\"ttname\"><a href=\"a01335.html\">Dune::RefinementImp::Simplex::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:385</div></div>\n-<div class=\"ttc\" id=\"aa01335_html_addf3e4e65918928613e6339bf7586792\"><div class=\"ttname\"><a href=\"a01335.html#addf3e4e65918928613e6339bf7586792\">Dune::RefinementImp::Simplex::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::CachedMultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:388</div></div>\n-<div class=\"ttc\" id=\"aa01339_html\"><div class=\"ttname\"><a href=\"a01339.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:445</div></div>\n-<div class=\"ttc\" id=\"aa01343_html\"><div class=\"ttname\"><a href=\"a01343.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:451</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_a13d53a5cb0c66b3f1db60363ee29d46b\"><div class=\"ttname\"><a href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:454</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_a1b79b4ccbb379c1798b463e22bda4435\"><div class=\"ttname\"><a href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:453</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_a2da12148180359a8e5d4b0ca4c4ca527\"><div class=\"ttname\"><a href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::vertex</a></div><div class=\"ttdeci\">Vertex vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:471</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_aaeafc21d67ff0ef647e6cc61264ee6d2\"><div class=\"ttname\"><a href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:455</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_ad689e831ddeb23204a98df1ef62942b8\"><div class=\"ttname\"><a href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::This</a></div><div class=\"ttdeci\">RefinementIteratorSpecial< dimension, CoordType, dimension > This</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:456</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_ae3655a48026ef490612d6a61fa46d5bc\"><div class=\"ttname\"><a href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Vertex</a></div><div class=\"ttdeci\">FieldVector< int, dimension > Vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:468</div></div>\n-<div class=\"ttc\" id=\"aa01343_html_afc4dc958163c18c5850793a1d43494cc\"><div class=\"ttname\"><a href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::size</a></div><div class=\"ttdeci\">int size</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:470</div></div>\n-<div class=\"ttc\" id=\"aa01347_html\"><div class=\"ttname\"><a href=\"a01347.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:541</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a13327dbc3e7882609600286a93a6cf92\"><div class=\"ttname\"><a href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:568</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a255e4781c12d653875752edc22339ad9\"><div class=\"ttname\"><a href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Vertex</a></div><div class=\"ttdeci\">FieldVector< int, dimension > Vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:564</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a49f02121a44d7876aa0edf904ff2fbbe\"><div class=\"ttname\"><a href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::origin</a></div><div class=\"ttdeci\">Vertex origin</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:567</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a536218025297ad013286e9647f5fedd8\"><div class=\"ttname\"><a href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::index_</a></div><div class=\"ttdeci\">int index_</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:570</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a557c7bcfb38185387885b9cd0e34616d\"><div class=\"ttname\"><a href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:546</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a64451b17540d5334bb173a2ff514aa90\"><div class=\"ttname\"><a href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:544</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a646ff1c050f2d88cb722e80d7ffc469b\"><div class=\"ttname\"><a href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:545</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_a6c4b3e4c450a13402ecc4f032fbf3196\"><div class=\"ttname\"><a href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::This</a></div><div class=\"ttdeci\">RefinementIteratorSpecial< dimension, CoordType, 0 > This</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:547</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_ac0a410f8ebfbf2def79e0913b67c7ebb\"><div class=\"ttname\"><a href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:543</div></div>\n-<div class=\"ttc\" id=\"aa01347_html_ad7af99d9983c82a72a44b897d313f240\"><div class=\"ttname\"><a href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::size</a></div><div class=\"ttdeci\">int size</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:569</div></div>\n-<div class=\"ttc\" id=\"aa01351_html_a0469732db9b593f8b6910db24e6aa757\"><div class=\"ttname\"><a href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\">Dune::RefinementImp::Simplex::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n-<div class=\"ttc\" id=\"aa01351_html_aac8e0efdd4076c1e33f6fa90b5c918f0\"><div class=\"ttname\"><a href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\">Dune::RefinementImp::Simplex::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:705</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a46da773c6f7d01077322c1064037e52f\"><div class=\"ttname\"><a href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">Dune::geometryTypeFromVertexCount</a></div><div class=\"ttdeci\">GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int vertices)</div><div class=\"ttdoc\">Utility function to construct the correct geometry type given the dimension and the number of vertice...</div><div class=\"ttdef\"><b>Definition</b> typefromvertexcount.hh:17</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,682 +1,79 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-simplex.cc\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+typefromvertexcount.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n-_\b6#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n+5#ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n+6#define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n 7\n-8// This file is part of DUNE, a Distributed and Unified Numerics Environment\n-9// This file is copyright (C) 2005 Jorrit Fahlke <jorrit@jorrit.de>\n-10// This file is licensed under version 2 of the GNU General Public License,\n-11// with a special \"runtime exception.\" See COPYING at the top of the source\n-12// tree for the full licence.\n-13\n-243#include <algorithm>\n-244\n-245#include <dune/common/fvector.hh>\n-246#include <dune/common/math.hh>\n-247\n-248#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-249#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-250#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-251\n-252#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-253\n-254namespace _\bD_\bu_\bn_\be {\n-255\n-256 namespace RefinementImp {\n-257\n-_\b2_\b6_\b4 namespace Simplex {\n-265\n-266 // //////////////////\n-267 //\n-269 //\n-270\n-272\n-279 template<int dimension>\n-_\b2_\b8_\b0 int _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(const FieldVector<int, dimension> &point)\n-281 {\n-282 int index = 0;\n-283 for(int i = 0; i < dimension; ++i)\n-284 index += Dune::binomial(dimension-i + point[i]-1, dimension-i);\n-285 return index;\n-286 }\n-287\n-292 template<int n>\n-_\b2_\b9_\b3 FieldVector<int, n> _\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn(int m)\n-294 {\n-295 FieldVector<int, n> perm;\n-296 for(int i = 0; i < n; ++i)\n-297 perm[i] = i;\n-298\n-299 int base = 1;\n-300 for(int i = 1; i <= n; ++i)\n-301 base *= i;\n-302\n-303 for(int i = n; i > 0; --i) {\n-304 base /= i;\n-305 int d = m / base;\n-306 m %= base;\n-307 int t = perm[i-1]; perm[i-1] = perm[i-1-d]; perm[i-1-d] = t;\n-308 }\n-309 return perm;\n-310 }\n-311\n-312 // map between the reference simplex and some arbitrary kuhn simplex\n-(denoted by it's permutation)\n-320 template<int dimension, class CoordType>\n-321 FieldVector<CoordType, dimension>\n-_\b3_\b2_\b2 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn(\n-323 FieldVector<CoordType, dimension> point,\n-325 const FieldVector<int, dimension> &kuhn)\n-326 {\n-327 for(int i = dimension - 1; i > 0; --i)\n-328 point[kuhn[i-1]] += point[kuhn[i]];\n-329 return point;\n-330 }\n-331\n-339 template<int dimension, class CoordType>\n-340 FieldVector<CoordType, dimension>\n-_\b3_\b4_\b1 _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(\n-342 FieldVector<CoordType, dimension> point,\n-344 const FieldVector<int, dimension> &kuhn)\n-345 {\n-346 for(int i = 0; i < dimension - 1; ++i)\n-347 point[kuhn[i]] -= point[kuhn[i+1]];\n-348 return point;\n-349 }\n-350\n-351\n-353\n-354 // /////////////////////////////////////////\n-355 //\n-356 // refinement implementation for simplices\n-357 //\n-358\n-359 template<int dimension_, class CoordType>\n-_\b3_\b6_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-361 {\n-362 public:\n-_\b3_\b6_\b3 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n-_\b3_\b6_\b4 typedef CoordType _\bc_\bt_\by_\bp_\be;\n-365\n-366 template<int codimension>\n-367 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b3_\b6_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b3_\b6_\b9 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b3_\b7_\b0 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b3_\b7_\b1 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-372\n-373 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n-374 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-375 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n-376\n-377 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n-378 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-379 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n-380 };\n-381\n-382 template<int dimension, class CoordType>\n-383 template<int codimension>\n-_\b3_\b8_\b4 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-385 {\n-386 class SubEntityIterator;\n-387 // We don't need the caching, but the uncached MultiLinearGeometry has bug\n-FS#1209\n-_\b3_\b8_\b8 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bC_\ba_\bc_\bh_\be_\bd_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n-codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-389 };\n-390\n-391 template<int dimension, class CoordType>\n-392 int\n-_\b3_\b9_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-394_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n-395 {\n-396 return Dune::binomial(dimension + nIntervals, (int)dimension);\n-397 }\n-398\n-399 template<int dimension, class CoordType>\n-400 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b4_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-402_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-403 {\n-404 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-405 }\n-406\n-407 template<int dimension, class CoordType>\n-408 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b4_\b0_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-410_\b _\bv_\bE_\bn_\bd(int nIntervals)\n-411 {\n-412 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-413 }\n-414\n-415 template<int dimension, class CoordType>\n-416 int\n-_\b4_\b1_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-418_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n-419 {\n-420 return Dune::power(nIntervals, int(dimension));\n-421 }\n-422\n-423 template<int dimension, class CoordType>\n-424 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b4_\b2_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-426_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-427 {\n-428 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-429 }\n-430\n-431 template<int dimension, class CoordType>\n-432 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b4_\b3_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-434_\b _\be_\bE_\bn_\bd(int nIntervals)\n-435 {\n-436 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-437 }\n-438\n-439 // //////////////\n-440 //\n-441 // The iterator\n-442 //\n-443\n-444 template<int dimension, class CoordType, int codimension>\n-_\b4_\b4_\b5 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-446\n-447 // vertices\n-448\n-449 template<int dimension, class CoordType>\n-_\b4_\b5_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n-451 {\n-452 public:\n-_\b4_\b5_\b3 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b4_\b5_\b4 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b4_\b5_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-_\b4_\b5_\b6 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bT_\bh_\bi_\bs;\n-457\n-458 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-459\n-460 void increment();\n-461 bool equals(const _\bT_\bh_\bi_\bs &other) const;\n-462\n-463 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-464 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n-465\n-466 int index() const;\n-467 protected:\n-_\b4_\b6_\b8 typedef FieldVector<int, dimension> _\bV_\be_\br_\bt_\be_\bx;\n-469\n-_\b4_\b7_\b0 int _\bs_\bi_\bz_\be;\n-_\b4_\b7_\b1 _\bV_\be_\br_\bt_\be_\bx _\bv_\be_\br_\bt_\be_\bx;\n-472 };\n-473\n-474 template<int dimension, class CoordType>\n-_\b4_\b7_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-476_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-477 : size(nIntervals)\n-478 {\n-479 vertex[0] = (end) ? size + 1 : 0;\n-480 for(int i = 1; i < dimension; ++ i)\n-481 vertex[i] = 0;\n-482 }\n-483\n-484 template<int dimension, class CoordType>\n-485 void\n-_\b4_\b8_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-487_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-488 {\n-489 assert(vertex[0] <= size);\n-490 for(int i = dimension - 1; i >= 0; --i) {\n-491 ++vertex[i];\n-492 if(i == 0 || vertex[i] <= vertex[i-1])\n-493 break;\n-494 else\n-495 vertex[i] = 0;\n-496 }\n-497 }\n-498\n-499 template<int dimension, class CoordType>\n-500 bool\n-_\b5_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-502_\b _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const\n-503 {\n-504 return size == other._\bs_\bi_\bz_\be && vertex == other._\bv_\be_\br_\bt_\be_\bx;\n-505 }\n-506\n-507 template<int dimension, class CoordType>\n-508 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b5_\b0_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-510_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-511 {\n-512 _\bV_\be_\br_\bt_\be_\bx ref = _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(vertex, getPermutation<dimension>(0));\n-513\n-514 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords;\n-515 for(int i = 0; i < dimension; ++i)\n-516 coords[i] = CoordType(ref[i]) / size;\n-517 return coords;\n-518 }\n-519\n-520 template<int dimension, class CoordType>\n-521 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b5_\b2_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n-const\n-523 {\n-524 std::vector<CoordVector> corners(1);\n-525 corners[0] = (_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br)vertex;\n-526 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n-527 }\n-528\n-529 template<int dimension, class CoordType>\n-530 int\n-_\b5_\b3_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-532_\b _\bi_\bn_\bd_\be_\bx() const\n-533 {\n-534 return _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n-535 }\n-536\n-537 // elements\n-538\n-539 template<int dimension, class CoordType>\n-_\b5_\b4_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-541 {\n-542 public:\n-_\b5_\b4_\b3 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b5_\b4_\b4 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-_\b5_\b4_\b5 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b5_\b4_\b6 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-_\b5_\b4_\b7 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b> _\bT_\bh_\bi_\bs;\n-548\n-549 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-550\n-551 void increment();\n-552 bool equals(const _\bT_\bh_\bi_\bs &other) const;\n-553\n-554 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-555 int index() const;\n-556 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-557\n-558 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n-559\n-560 private:\n-561 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n-562\n-563 protected:\n-_\b5_\b6_\b4 typedef FieldVector<int, dimension> _\bV_\be_\br_\bt_\be_\bx;\n-_\b5_\b6_\b5 constexpr static int nKuhnIntervals = Dune::factorial(dimension);\n-566\n-_\b5_\b6_\b7 _\bV_\be_\br_\bt_\be_\bx _\bo_\br_\bi_\bg_\bi_\bn;\n-_\b5_\b6_\b8 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b5_\b6_\b9 int _\bs_\bi_\bz_\be;\n-_\b5_\b7_\b0 int _\bi_\bn_\bd_\be_\bx_\b_;\n-571 };\n-572\n-573 template<int dimension, class CoordType>\n-_\b5_\b7_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-575_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-576 : kuhnIndex(0), size(nIntervals), index_(0)\n-577 {\n-578 for(int i = 0; i < dimension; ++i)\n-579 origin[i] = 0;\n-580 if(end) {\n-581 index_ = Refinement::nElements(nIntervals);\n-582 origin[0] = size;\n-583 }\n-584 }\n-585\n-586 template<int dimension, class CoordType>\n-587 void\n-_\b5_\b8_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-589_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-590 {\n-591 assert(origin[0] < size);\n-592\n-593 ++index_;\n-594\n-595 while(1) {\n-596 ++kuhnIndex;\n-597 if(kuhnIndex == nKuhnIntervals) {\n-598 kuhnIndex = 0;\n-599 // increment origin\n-600 for(int i = dimension - 1; i >= 0; --i) {\n-601 ++origin[i];\n-602 if(i == 0 || origin[i] <= origin[i-1])\n-603 break;\n-604 else\n-605 origin[i] = 0;\n-606 }\n-607 }\n-608\n-609 // test whether the current simplex has any corner outside the kuhn0\n-simplex\n-610 FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);\n-611 _\bV_\be_\br_\bt_\be_\bx corner = origin;\n-612 bool outside = false;\n-613 for(int i = 0; i < dimension; ++i) {\n-614 // next corner\n-615 ++corner[perm[i]];\n-616 if(perm[i] > 0)\n-617 if(corner[perm[i]] > corner[perm[i]-1]) {\n-618 outside = true;\n-619 break;\n-620 }\n-621 }\n-622 if(!outside)\n-623 return;\n-624 }\n-625 }\n-626\n-627 template<int dimension, class CoordType>\n-628 bool\n-_\b6_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-630_\b _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const\n-631 {\n-632 return size == other._\bs_\bi_\bz_\be && index_ == other._\bi_\bn_\bd_\be_\bx_\b_;\n-633 }\n-634\n-635 template<int dimension, class CoordType>\n-636 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b6_\b3_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-638_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-639 {\n-640 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices;\n-641 FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);\n-642 _\bV_\be_\br_\bt_\be_\bx vertex = origin;\n-643 indices[0] = _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n-644 for(int i = 0; i < dimension; ++i) {\n-645 ++vertex[perm[i]];\n-646 indices[i+1] = _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n-647 }\n-648 if (kuhnIndex%2 == 1)\n-649 for(int i = 0; i < (dimension+1)/2; ++i) {\n-650 int t = indices[i];\n-651 indices[i] = indices[dimension-i];\n-652 indices[dimension-i] = t;\n-653 }\n-654 return indices;\n-655 }\n-656\n-657 template<int dimension, class CoordType>\n-658 int\n-_\b6_\b5_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-660_\b _\bi_\bn_\bd_\be_\bx() const\n-661 {\n-662 return index_;\n-663 }\n-664\n-665 template<int dimension, class CoordType>\n-666 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b6_\b6_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-668_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-669 {\n-670 return global(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n-671 ::simplex().position(0,0));\n-672 }\n-673\n-674 template<int dimension, class CoordType>\n-675 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b6_\b7_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by () const\n-677 {\n-678 std::vector<CoordVector> corners(dimension+1);\n-679 auto refelem = _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx();\n-680 for(int i = 0; i <= dimension; ++i)\n-681 corners[i] = global(refelem.position(i, dimension));\n-682 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(refelem.type(), corners);\n-683 }\n-684\n-685 template<int dimension, class CoordType>\n-686 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-687 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-688_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const {\n-689 CoordVector v =\n-690 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn(local, getPermutation<dimension>(kuhnIndex));\n-691 v += origin;\n-692 v /= (typename CoordVector::value_type)size;\n-693 return _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(v, getPermutation<dimension>(0));\n-694 }\n-695\n-696 // common\n-697\n-698 template<int dimension, class CoordType>\n-699 template<int codimension>\n-_\b7_\b0_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-701 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n-CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-702 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n-703 {\n-704 public:\n-_\b7_\b0_\b5 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-706\n-_\b7_\b0_\b7 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n-708 };\n-709\n-710#ifndef DOXYGEN\n-711\n-712 template<int dimension, class CoordType>\n-713 template<int codimension>\n-714 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-715_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n-716 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n-end)\n-717 {}\n-718\n-719#endif\n-720\n-721 } // namespace Simplex\n-722\n-723 } // namespace RefinementImp\n-724\n-725\n-726 namespace RefinementImp {\n-727\n-728 // ///////////////////////\n-729 //\n-730 // The refinement traits\n-731 //\n-732\n-733#ifndef DOXYGEN\n-734 template<unsigned topologyId, class CoordType, unsigned coerceToId,\n-735 int dim>\n-736 struct Traits<\n-737 topologyId, CoordType, coerceToId, dim,\n-738 typename _\bs_\bt_\bd::enable_if<\n-739 ((GeometryTypes::simplex(dim).id() >> 1) ==\n-740 (topologyId >> 1) &&\n-741 (GeometryTypes::simplex(dim).id() >> 1) ==\n-742 (coerceToId >> 1)\n-743 )>::type\n-744 >\n-745 {\n-746 typedef Simplex::RefinementImp<dim, CoordType> Imp;\n-747 };\n-748#endif\n-749\n-750\n-751 } // namespace RefinementImp\n-752\n-753} // namespace Dune\n-754\n-755#endif //DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n+8#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+9\n+10namespace _\bD_\bu_\bn_\be {\n+11\n+16 inline\n+_\b1_\b7 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt(unsigned int dim, unsigned int\n+vertices)\n+18 {\n+19 switch (dim)\n+20 {\n+21 case 0 :\n+22 return GeometryTypes::vertex;\n+23 case 1 :\n+24 return GeometryTypes::line;\n+25 case 2 :\n+26 switch (vertices) {\n+27 case 3 :\n+28 return GeometryTypes::triangle;\n+29 case 4 :\n+30 return GeometryTypes::quadrilateral;\n+31 default :\n+32 DUNE_THROW(NotImplemented, \"2d elements with \" << vertices << \" corners are\n+not supported!\");\n+33 }\n+34 case 3 :\n+35 switch (vertices) {\n+36 case 4 :\n+37 return GeometryTypes::tetrahedron;\n+38 case 5 :\n+39 return GeometryTypes::pyramid;\n+40 case 6 :\n+41 return GeometryTypes::prism;\n+42 case 8 :\n+43 return GeometryTypes::hexahedron;\n+44 default :\n+45 DUNE_THROW(NotImplemented, \"3d elements with \" << vertices << \" corners are\n+not supported!\");\n+46 }\n+47 default :\n+48 DUNE_THROW(NotImplemented, \"geometryTypeFromVertexCount works only up to\n+dim=3\");\n+49 }\n+50 }\n+51\n+52}\n+53\n+54#endif // DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bb_\ba_\bs_\be_\b._\bc_\bc\n-This file contains the parts independent of a particular Refinement\n-implementation.\n-_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n-_\bs_\bt_\bd\n-STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx\n-int pointIndex(const FieldVector< int, dimension > &point)\n-calculate the index of a given gridpoint within a Kuhn0 simplex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:280\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n-FieldVector< int, n > getPermutation(int m)\n-Calculate permutation from it's index.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n-FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n-dimension > point, const FieldVector< int, dimension > &kuhn)\n-Map from the reference simplex to some Kuhn simplex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n-FieldVector< CoordType, dimension > kuhnToReference(FieldVector< CoordType,\n-dimension > point, const FieldVector< int, dimension > &kuhn)\n-Map from some Kuhn simplex to the reference simplex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:341\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-Class providing access to the singletons of the reference elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx\n-static const ReferenceElement & simplex()\n-get simplex reference elements\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:162\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-Static tag representing a codimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\ba_\bc_\bh_\be_\bd_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Implement a MultiLinearGeometry with additional caching.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:526\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:368\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< int, dimension+1 > IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:371\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n-CoordType ctype\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:364\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:394\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:418\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:434\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:410\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:370\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:402\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:426\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:369\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:363\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:385\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Dune::CachedMultiLinearGeometry< CoordType, dimension-codimension, dimension >\n-Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:388\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:445\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:451\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:454\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:453\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bv_\be_\br_\bt_\be_\bx\n-Vertex vertex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:471\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< dimension >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:455\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n-RefinementIteratorSpecial< dimension, CoordType, dimension > This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:456\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx\n-FieldVector< int, dimension > Vertex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:468\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be\n-int size\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:470\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:541\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:568\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx\n-FieldVector< int, dimension > Vertex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:564\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bo_\br_\bi_\bg_\bi_\bn\n-Vertex origin\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:567\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx_\b_\n-int index_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:570\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< 0 >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:546\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:544\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:545\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n-RefinementIteratorSpecial< dimension, CoordType, 0 > This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:547\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:543\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be\n-int size\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:569\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(int nIntervals, bool end=false)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:705\n+_\bD_\bu_\bn_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt\n+GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int\n+vertices)\n+Utility function to construct the correct geometry type given the dimension and\n+the number of vertice...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typefromvertexcount.hh:17\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00203.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00203.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: prismtriangulation.cc File Reference</title>\n+<title>dune-geometry: algorithms.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,86 +65,41 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">prismtriangulation.cc File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">algorithms.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include "<a class=\"el\" href=\"a00206_source.html\">base.cc</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00200_source.html\">simplex.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <algorithm></code><br />\n+<code>#include <cmath></code><br />\n+<code>#include <limits></code><br />\n+<code>#include <optional></code><br />\n+<code>#include <type_traits></code><br />\n+<code>#include <dune/common/debugstream.hh></code><br />\n+<code>#include <dune/common/fmatrix.hh></code><br />\n+<code>#include <dune/common/ftraits.hh></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n </div>\n <p><a href=\"a00203_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n-Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01287.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the refinement of a prism into simplices. <a href=\"a01287.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01291.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01295.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01299.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01303.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00272\" id=\"r_a00272\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00272.html\">Dune::RefinementImp::PrismTriangulation</a></td></tr>\n-<tr class=\"memdesc:a00272\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating prisms (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\" title=\"Prism element in three dimensions.\">GeometryType::prism</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:ae56eb72b98f97f57cc224eb9b4394ef8\" id=\"r_ae56eb72b98f97f57cc224eb9b4394ef8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00203.html#ae56eb72b98f97f57cc224eb9b4394ef8\">DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</a></td></tr>\n-<tr class=\"separator:ae56eb72b98f97f57cc224eb9b4394ef8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n-Functions</h2></td></tr>\n-<tr class=\"memitem:af1da6e2739b0151f232dcecc95812162\" id=\"r_af1da6e2739b0151f232dcecc95812162\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:af1da6e2739b0151f232dcecc95812162\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">Dune::RefinementImp::PrismTriangulation::transformCoordinate</a> (FieldVector< CoordType, dimension > point)</td></tr>\n-<tr class=\"separator:af1da6e2739b0151f232dcecc95812162\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"ae56eb72b98f97f57cc224eb9b4394ef8\" name=\"ae56eb72b98f97f57cc224eb9b4394ef8\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae56eb72b98f97f57cc224eb9b4394ef8\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,57 +1,25 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-prismtriangulation.cc File Reference\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+algorithms.hh File Reference\n+#include <algorithm>\n+#include <cmath>\n+#include <limits>\n+#include <optional>\n+#include <type_traits>\n+#include <dune/common/debugstream.hh>\n+#include <dune/common/fmatrix.hh>\n+#include <dune/common/ftraits.hh>\n #include <dune/common/fvector.hh>\n-#include <dune/common/typetraits.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0 Implementation of the refinement of a prism into simplices. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n-\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n- triangulating prisms (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\br_\bi_\bs_\bm -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx)\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bP_\bR_\bI_\bS_\bM_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<int dimension, class CoordType >\n-FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:\n- _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be (FieldVector<\n- CoordType, dimension > point)\n-\u00a0\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_P\bPR\bRI\bIS\bSM\bMT\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00203_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00203_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: prismtriangulation.cc Source File</title>\n+<title>dune-geometry: algorithms.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,521 +70,124 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">prismtriangulation.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">algorithms.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00203.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00203.html#ae56eb72b98f97f57cc224eb9b4394ef8\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span> </div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <algorithm></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <cmath></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <limits></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <optional></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <type_traits></span></div>\n <div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">base.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00200.html\">simplex.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n-<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00272.html\"> 26</a></span> <span class=\"keyword\">namespace </span>PrismTriangulation</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// ////////////</span></div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Utilities</span></div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Simplex::getPermutation</a>;</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Simplex::referenceToKuhn</a>;</div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> </div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// ////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// Refine a prism with simplices</span></div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">// forward declaration of the iterator base</span></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01283.html\"> 43</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">/*</span></div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span><span class=\"comment\"> * The permutations 0,2 and 3 of the Kuhn-decomposition of a cube into simplices form a prism.</span></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"comment\"> * The resulting prism is not oriented the same as the reference prism and so the Kuhn-coordinates</span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"comment\"> * have to be transformed using the method below.</span></div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span><span class=\"comment\"> */</span></div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType> FieldVector<CoordType, dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00050\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\"> 50</a></span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(FieldVector<CoordType, dimension> point)</div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> {</div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> FieldVector<CoordType, dimension> transform;</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> transform[0] = point[1];</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> transform[1] = 1 - point[0];</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> transform[2] = point[2];</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keywordflow\">return</span> transform;</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html\"> 66</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\"> 69</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a> = dimension_;</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\"> 71</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\">ctype</a>;</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01291.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\"> 75</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01291.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\"> 76</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\"> 77</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01291.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\"> 78</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a15d10024428cb4136290fa22c2c68374\"> 86</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, 0>;</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, <a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>>;</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> </div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">Simplex::RefinementImp<dimension, CoordType></a> <a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> </div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00097\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01291.html\"> 97</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01291.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> {</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\"> 100</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01151.html\">Dune::MultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> };</div>\n-</div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/debugstream.hh></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/ftraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"keyword\">namespace </span>Impl {</div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> R = <span class=\"keywordtype\">double</span>></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"keyword\">struct </span>GaussNewtonOptions</div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span>{</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"keywordtype\">int</span> maxIt = 100;</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> R absTol = []{ <span class=\"keyword\">using </span>std::sqrt; <span class=\"keywordflow\">return</span> sqrt(std::numeric_limits<R>::epsilon()); }();</div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keywordtype\">int</span> maxInnerIt = 10;</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> R theta = 0.5;</div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span>};</div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> </div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> </div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span><span class=\"keyword\">enum class</span> GaussNewtonErrorCode</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span>{</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> OK = 0, <span class=\"comment\">//< A solution is found</span></div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> JACOBIAN_NOT_INVERTIBLE, <span class=\"comment\">//< The Jacobian is not invertible at the current point</span></div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> STAGNATION, <span class=\"comment\">//< No reduction of the residul norm possible</span></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> TOLERANCE_NOT_REACHED <span class=\"comment\">//< The break tolerance for the resodual norm is not reached</span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span>};</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> </div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>F, <span class=\"keyword\">class </span>DF, <span class=\"keyword\">class </span>Domain,</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F, Domain>,</div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">class </span>R = <span class=\"keyword\">typename</span> Dune::FieldTraits<Domain>::real_type></div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span>GaussNewtonErrorCode gaussNewton (<span class=\"keyword\">const</span> F& f, <span class=\"keyword\">const</span> DF& df, Range y, Domain& x0,</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> GaussNewtonOptions<R> opts = {})</div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span>{</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> Domain x = x0;</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> Domain dx{};</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> Range dy = f(x0) - y;</div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> R resNorm0 = dy.two_norm();</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> R resNorm = 0;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> i = 0; i < opts.maxIt; ++i)</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> {</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> <span class=\"comment\">// Get descent direction dx: (J^T*J)dx = J^T*dy</span></div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> invertible = FieldMatrixHelper<R>::xTRightInvA(df(x), dy, dx);</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"comment\">// break if jacobian is not invertible</span></div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordflow\">if</span> (!invertible)</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::JACOBIAN_NOT_INVERTIBLE;</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"comment\">// line-search procedure to update x with correction dx</span></div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> R alpha = 1;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> j = 0; j < opts.maxInnerIt; ++j) {</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> x = x0 - alpha * dx;</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> dy = f(x) - y;</div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> resNorm = dy.two_norm();</div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> </div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keywordflow\">if</span> (resNorm < resNorm0)</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> alpha *= opts.theta;</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> }</div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> </div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"comment\">// cannot reduce the residual</span></div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keywordflow\">if</span> (!(resNorm < resNorm0))</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::STAGNATION;</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> </div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> x0 = x;</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> resNorm0 = resNorm;</div>\n <div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00105\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\"> 105</a></span> <a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span><a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> {</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"keywordflow\">return</span> BackendRefinement::nVertices(nIntervals) * 3;</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> </div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\"> 113</a></span> <a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span><a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> {</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00121\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\"> 121</a></span> <a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span><a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> {</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00129\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\"> 129</a></span> <a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span><a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> {</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordflow\">return</span> BackendRefinement::nElements(nIntervals) * 3;</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00137\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\"> 137</a></span> <a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span><a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> {</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>(nIntervals);</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> </div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00145\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\"> 145</a></span> <a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span><a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"comment\">// //////////////</span></div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> <span class=\"comment\">// The iterator</span></div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> </div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// vertices</span></div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00158\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html\"> 158</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> {</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\"> 161</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\"> 162</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\"> 163</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> </div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> </div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> </div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> <a class=\"code hl_typedef\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\"> 174</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::BackendRefinement <a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\"> 175</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a038843c5d7d5520ff8ef5d310a61f41d\"> 176</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 3;</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\"> 178</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\"> 180</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#ad83a8287371d043635821940eae78312\"> 181</a></span> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01295.html#ad83a8287371d043635821940eae78312\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\"> 182</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> </div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00186\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a901b5292c50c5dfac3160ecba661c728\"> 186</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span><a class=\"code hl_class\" href=\"a01283.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> backend(<a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>::vBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> backendEnd(<a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>::vEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> {</div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> </div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00198\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a73814f3c5bd4256cf549eaca2e37b771\"> 198</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span><a class=\"code hl_class\" href=\"a01283.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> {</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> backend = BackendRefinement::vBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> }</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> </div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00211\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#af25c8c54964e2155a3c79e9a3e5664d9\"> 211</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span><a class=\"code hl_class\" href=\"a01283.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> <span class=\"comment\">// while the kuhnIndex runs from 0,1,2 the actual permutations we need are 0,2,3</span></div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> getPermutation<dimension>((kuhnIndex + 2) % 4)));</div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> </div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00221\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a2110df9a2a1ff807b46a7af62d421540\"> 221</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> std::vector<CoordVector> corners(1);</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> corners[0] = <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> getPermutation<dimension>((kuhnIndex + 2) % 4)));</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> </div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00231\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#ae27f8e44edd23ddad1f5f9782ed50f58\"> 231</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span><a class=\"code hl_class\" href=\"a01283.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> </div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"comment\">// elements</span></div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00239\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html\"> 239</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> {</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\"> 242</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\"> 243</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\"> 244</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> </div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordtype\">void</span> increment();</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> </div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> </div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\"> 261</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01331.html\">Refinement::BackendRefinement</a> <a class=\"code hl_typedef\" href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\">BackendRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\"> 262</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a54d21ef9b531b5542ac81dac54d3de48\"> 263</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 3;</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\"> 265</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\">nIntervals_</a>;</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\"> 267</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\">kuhnIndex</a>;</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\"> 268</a></span> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\">backend</a>;</div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\"> 269</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\">backendEnd</a>;</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> </div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00273\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#ac79cdfdd4e19b7cd87d91580df6b157f\"> 273</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span><a class=\"code hl_class\" href=\"a01283.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> backend(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eBegin(nIntervals_)),</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> backendEnd(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eEnd(nIntervals_))</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> {</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keywordflow\">if</span> (end)</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> kuhnIndex = nKuhnSimplices;</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"foldopen\" id=\"foldopen00285\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a7a66381e6e64c6d1c006bac7108faa6a\"> 285</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span><a class=\"code hl_class\" href=\"a01283.html\"> increment</a>()</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> {</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> {</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> backend = BackendRefinement::eBegin(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> ++kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> }</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> </div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00298\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8597e5c5498764d732fa6043b23e6e73\"> 298</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span><a class=\"code hl_class\" href=\"a01283.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a> indices = backend.vertexIndices();</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordtype\">int</span> base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> indices += base;</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> </div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keywordflow\">return</span> indices;</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> </div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00311\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#acc62f6998f7b9d431c99b7f3ef71ddba\"> 311</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span><a class=\"code hl_class\" href=\"a01283.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index();</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> </div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#af215e11b3aed27eb92cd9aba92208ac1\"> 319</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span><a class=\"code hl_class\" href=\"a01283.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> global(backend.coords());</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n-<div class=\"foldopen\" id=\"foldopen00327\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8899299c5b15bbea83dc609ade9e6a56\"> 327</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> BackendIterator::Geometry &bgeo =</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> backend.geometry();</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> std::vector<CoordVector> corners(dimension+1);</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> corners[i] = global(bgeo.corner(i));</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a>(bgeo.type(), corners);</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span><a class=\"code hl_class\" href=\"a01283.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"comment\">// while the kuhnIndex runs from 0,1,2 the actual permutations we need are 0,2,3</span></div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(local, getPermutation<dimension>((kuhnIndex+2)%4)));</div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> }</div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"comment\">// common</span></div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00350\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html\"> 350</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01291.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> {</div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\"> 355</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\"> 356</a></span> <span class=\"keyword\">typedef</span> SubEntityIterator <a class=\"code hl_typedef\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> </div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\"> 358</a></span> <a class=\"code hl_function\" href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\"> 360</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, codimension>::kuhnIndex;</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, codimension>::backend;</div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> </div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span><a class=\"code hl_class\" href=\"a01287.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> : <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> {}</div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> </div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span><a class=\"code hl_class\" href=\"a01287.html\"> equals</a>(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordflow\">return</span> ((kuhnIndex == other.kuhnIndex) && (backend == other.backend));</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> }</div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> } <span class=\"comment\">// namespace PrismTriangulation</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> {</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"comment\">// ///////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// The refinement traits</span></div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> </div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId></div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">struct </span>Traits<</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> topologyId, CoordType, coerceToId, 3,</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> (GeometryTypes::prism.id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> (topologyId >> 1) &&</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> (GeometryTypes::simplex(3).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> (coerceToId >> 1)</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> >::type></div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> {</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <span class=\"keyword\">typedef</span> PrismTriangulation::RefinementImp<3, CoordType> Imp;</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> };</div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00200_html\"><div class=\"ttname\"><a href=\"a00200.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"comment\">// break if tolerance is reached.</span></div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordflow\">if</span> (resNorm < opts.absTol)</div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::OK;</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> </div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"comment\">// tolerance could not be reached</span></div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> <span class=\"keywordflow\">if</span> (!(resNorm < opts.absTol))</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::TOLERANCE_NOT_REACHED;</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::OK;</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span>}</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> </div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span>} <span class=\"comment\">// end namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span>} <span class=\"comment\">// end namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> </div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n+<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00272_html_af1da6e2739b0151f232dcecc95812162\"><div class=\"ttname\"><a href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">Dune::RefinementImp::PrismTriangulation::transformCoordinate</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType, dimension > point)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:50</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n-<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n-<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01151_html\"><div class=\"ttname\"><a href=\"a01151.html\">Dune::MultiLinearGeometry</a></div><div class=\"ttdoc\">generic geometry implementation based on corner coordinates</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:181</div></div>\n-<div class=\"ttc\" id=\"aa01283_html\"><div class=\"ttname\"><a href=\"a01283.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:43</div></div>\n-<div class=\"ttc\" id=\"aa01287_html\"><div class=\"ttname\"><a href=\"a01287.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp</a></div><div class=\"ttdoc\">Implementation of the refinement of a prism into simplices.</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:67</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a1db511cdf3b70e7dc62b208673f60d26\"><div class=\"ttname\"><a href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">Dune::RefinementImp::PrismTriangulation::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:69</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a28fa55d18aeee749acff6ecc059a1129\"><div class=\"ttname\"><a href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\">Dune::RefinementImp::PrismTriangulation::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:71</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a37ed72458ea91e50fde6ce5b07282e3b\"><div class=\"ttname\"><a href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">Dune::RefinementImp::PrismTriangulation::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:122</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a3ce884e7f3a05d377c074000aa74b8c4\"><div class=\"ttname\"><a href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">Dune::RefinementImp::PrismTriangulation::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:78</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a470cae91d37597d04a3809c0228480cf\"><div class=\"ttname\"><a href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">Dune::RefinementImp::PrismTriangulation::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:146</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a4b14571fd52f36bd146826c3dad011b5\"><div class=\"ttname\"><a href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">Dune::RefinementImp::PrismTriangulation::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:106</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a5246b713609a65b5d3c8f8787a420ad3\"><div class=\"ttname\"><a href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">Dune::RefinementImp::PrismTriangulation::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:76</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a5976f814ba44f84e3c84b12da935af64\"><div class=\"ttname\"><a href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">Dune::RefinementImp::PrismTriangulation::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:130</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_a950cd49e252e7e8bcd57d515853f2620\"><div class=\"ttname\"><a href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">Dune::RefinementImp::PrismTriangulation::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:77</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_ab3af3622caed3151dd07ae49a3afd895\"><div class=\"ttname\"><a href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">Dune::RefinementImp::PrismTriangulation::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:75</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_abc4e15f595f5c76014f4e570dd5db3e7\"><div class=\"ttname\"><a href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">Dune::RefinementImp::PrismTriangulation::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:138</div></div>\n-<div class=\"ttc\" id=\"aa01287_html_ae7797b1bd454f7464f0ca6474add2d86\"><div class=\"ttname\"><a href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">Dune::RefinementImp::PrismTriangulation::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:114</div></div>\n-<div class=\"ttc\" id=\"aa01291_html\"><div class=\"ttname\"><a href=\"a01291.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:98</div></div>\n-<div class=\"ttc\" id=\"aa01291_html_a7b5e8d0057cf098f98cf3d8916fc2009\"><div class=\"ttname\"><a href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:100</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a05d1480e671b0f4cbcd312ba3665e9bf\"><div class=\"ttname\"><a href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:178</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a235ca11118a2871442b6d54ac1127b27\"><div class=\"ttname\"><a href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:163</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a44a548a019fd86d982aeb7f2e8a8b336\"><div class=\"ttname\"><a href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:174</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a6c293cbfa7e7a03fb17d038dd6810bad\"><div class=\"ttname\"><a href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< dimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:175</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a723ababeabbdc524c5f17201df9e96a9\"><div class=\"ttname\"><a href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:162</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_a9be27672edfa6cf9bb454f543889ae74\"><div class=\"ttname\"><a href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:182</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_aa9c3eb4a919f11b494e4698384c9b536\"><div class=\"ttname\"><a href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:161</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_ad83a8287371d043635821940eae78312\"><div class=\"ttname\"><a href=\"a01295.html#ad83a8287371d043635821940eae78312\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:181</div></div>\n-<div class=\"ttc\" id=\"aa01295_html_afb6fd0bd697e065b3993e733764613fe\"><div class=\"ttname\"><a href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:180</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a44a3859e1f79782a9e204b71ae2674c5\"><div class=\"ttname\"><a href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:265</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a4752f190730ce2d9493b20569977e8db\"><div class=\"ttname\"><a href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:245</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a514123accfcdfad7725e842381dd1c5b\"><div class=\"ttname\"><a href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:268</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a66a5893bda4f116c35c7fcbf524d8ec5\"><div class=\"ttname\"><a href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:243</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a7058338351f189fba61296f63dd58878\"><div class=\"ttname\"><a href=\"a01299.html#a7058338351f189fba61296f63dd58878\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:262</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a84db52b7c44f9656626097e4677ae61a\"><div class=\"ttname\"><a href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:267</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a8aa0b0f3e920c846d2abec9db44aff55\"><div class=\"ttname\"><a href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:244</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a8e32af32d57d37cbe2d694541a571eb1\"><div class=\"ttname\"><a href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:242</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_a8eead248183a83cc7c492042fe3d5c7c\"><div class=\"ttname\"><a href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:269</div></div>\n-<div class=\"ttc\" id=\"aa01299_html_af32603c76bb9a7d3d79beb12b2765f77\"><div class=\"ttname\"><a href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:261</div></div>\n-<div class=\"ttc\" id=\"aa01303_html_a3571251b93d1f1ae360d8dd10793fab5\"><div class=\"ttname\"><a href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:356</div></div>\n-<div class=\"ttc\" id=\"aa01303_html_a87d86e87b79c6e856297ac75d0b07bf1\"><div class=\"ttname\"><a href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n-<div class=\"ttc\" id=\"aa01303_html_aaedea8917997e892ea39efb9bafcd008\"><div class=\"ttname\"><a href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:355</div></div>\n-<div class=\"ttc\" id=\"aa01303_html_ab157d8cc07a0e9dea4d21d7e83cadffb\"><div class=\"ttname\"><a href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n-<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,605 +1,121 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-prismtriangulation.cc\n+ * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n+algorithms.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n-_\b6#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n+5#ifndef DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n+6#define DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n 7\n-8#include <dune/common/fvector.hh>\n-9#include <dune/common/typetraits.hh>\n-10\n-11#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-12#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+8#include <algorithm>\n+9#include <cmath>\n+10#include <limits>\n+11#include <optional>\n+12#include <type_traits>\n 13\n-14#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n-15#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n-16\n-17namespace _\bD_\bu_\bn_\be\n-18{\n-19 namespace RefinementImp\n-20 {\n-_\b2_\b6 namespace PrismTriangulation\n-27 {\n-28 // ////////////\n-29 //\n-30 // Utilities\n-31 //\n-32\n-33 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn;\n-34 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn;\n-35\n-36 // ////////////////////////////////////\n-37 //\n-38 // Refine a prism with simplices\n-39 //\n-40\n-41 // forward declaration of the iterator base\n-42 template<int dimension, class CoordType, int codimension>\n-_\b4_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-44 /*\n-45 * The permutations 0,2 and 3 of the Kuhn-decomposition of a cube into\n-simplices form a prism.\n-46 * The resulting prism is not oriented the same as the reference prism and so\n-the Kuhn-coordinates\n-47 * have to be transformed using the method below.\n-48 */\n-49 template<int dimension, class CoordType> FieldVector<CoordType, dimension>\n-_\b5_\b0 _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(FieldVector<CoordType, dimension> point)\n-51 {\n-52 FieldVector<CoordType, dimension> transform;\n-53 transform[0] = point[1];\n-54 transform[1] = 1 - point[0];\n-55 transform[2] = point[2];\n-56 return transform;\n-57 }\n-58\n-65 template<int dimension_, class CoordType>\n-_\b6_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-67 {\n-68 public:\n-_\b6_\b9 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n-70\n-_\b7_\b1 typedef CoordType _\bc_\bt_\by_\bp_\be;\n-72\n-73 template<int codimension>\n-74 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b7_\b5 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b6 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b7_\b7 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b7_\b8 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-79\n-80 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n-81 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-82 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n-83\n-84 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n-85 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n-_\b8_\b6 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n-87\n-88 private:\n-89 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, 0>;\n-90 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n-91\n-92 typedef _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-93 };\n-94\n-95 template<int dimension, class CoordType>\n-96 template<int codimension>\n-_\b9_\b7 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-98 {\n-99 class SubEntityIterator;\n-_\b1_\b0_\b0 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n-codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-101 };\n+14#include <dune/common/debugstream.hh>\n+15#include <dune/common/fmatrix.hh>\n+16#include <dune/common/ftraits.hh>\n+17#include <dune/common/fvector.hh>\n+18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n+19\n+20namespace _\bD_\bu_\bn_\be {\n+21namespace Impl {\n+22\n+23template <class R = double>\n+24struct GaussNewtonOptions\n+25{\n+27 int maxIt = 100;\n+28\n+30 R absTol = []{ using std::sqrt; return sqrt(std::numeric_limits<R>::epsilon\n+()); }();\n+31\n+33 int maxInnerIt = 10;\n+34\n+36 R theta = 0.5;\n+37};\n+38\n+39\n+41enum class GaussNewtonErrorCode\n+42{\n+43 OK = 0, //< A solution is found\n+44 JACOBIAN_NOT_INVERTIBLE, //< The Jacobian is not invertible at the current\n+point\n+45 STAGNATION, //< No reduction of the residul norm possible\n+46 TOLERANCE_NOT_REACHED //< The break tolerance for the resodual norm is not\n+reached\n+47};\n+48\n+49\n+62template <class F, class DF, class Domain,\n+63 class Range = std::invoke_result_t<F, Domain>,\n+64 class R = typename Dune::FieldTraits<Domain>::real_type>\n+65GaussNewtonErrorCode gaussNewton (const F& f, const DF& df, Range y, Domain&\n+x0,\n+66 GaussNewtonOptions<R> opts = {})\n+67{\n+68 Domain x = x0;\n+69 Domain dx{};\n+70 Range dy = f(x0) - y;\n+71 R resNorm0 = dy.two_norm();\n+72 R resNorm = 0;\n+73\n+74 for (int i = 0; i < opts.maxIt; ++i)\n+75 {\n+76 // Get descent direction dx: (J^T*J)dx = J^T*dy\n+77 const bool invertible = FieldMatrixHelper<R>::xTRightInvA(df(x), dy, dx);\n+78\n+79 // break if jacobian is not invertible\n+80 if (!invertible)\n+81 return GaussNewtonErrorCode::JACOBIAN_NOT_INVERTIBLE;\n+82\n+83 // line-search procedure to update x with correction dx\n+84 R alpha = 1;\n+85 for (int j = 0; j < opts.maxInnerIt; ++j) {\n+86 x = x0 - alpha * dx;\n+87 dy = f(x) - y;\n+88 resNorm = dy.two_norm();\n+89\n+90 if (resNorm < resNorm0)\n+91 break;\n+92\n+93 alpha *= opts.theta;\n+94 }\n+95\n+96 // cannot reduce the residual\n+97 if (!(resNorm < resNorm0))\n+98 return GaussNewtonErrorCode::STAGNATION;\n+99\n+100 x0 = x;\n+101 resNorm0 = resNorm;\n 102\n-103 template<int dimension, class CoordType>\n-104 int\n-_\b1_\b0_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-106_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n-107 {\n-108 return BackendRefinement::nVertices(nIntervals) * 3;\n-109 }\n-110\n-111 template<int dimension, class CoordType>\n-112 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b1_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-114_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-115 {\n-116 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-117 }\n-118\n-119 template<int dimension, class CoordType>\n-120 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-122_\b _\bv_\bE_\bn_\bd(int nIntervals)\n-123 {\n-124 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-125 }\n-126\n-127 template<int dimension, class CoordType>\n-128 int\n-_\b1_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-130_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n-131 {\n-132 return BackendRefinement::nElements(nIntervals) * 3;\n-133 }\n-134\n-135 template<int dimension, class CoordType>\n-136 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b3_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-138_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n-139 {\n-140 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n-141 }\n-142\n-143 template<int dimension, class CoordType>\n-144 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b4_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-146_\b _\be_\bE_\bn_\bd(int nIntervals)\n-147 {\n-148 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n-149 }\n-150\n-151 // //////////////\n-152 //\n-153 // The iterator\n-154 //\n-155\n-156 // vertices\n-157 template<int dimension, class CoordType>\n-_\b1_\b5_\b8 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n-159 {\n-160 public:\n-_\b1_\b6_\b1 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b6_\b2 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b1_\b6_\b3 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-164\n-165 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-166\n-167 void increment();\n-168\n-169 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-170 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n-171\n-172 int index() const;\n-173 protected:\n-_\b1_\b7_\b4 typedef typename Refinement::BackendRefinement _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b7_\b5 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b1_\b7_\b6 constexpr static int nKuhnSimplices = 3;\n-177\n-_\b1_\b7_\b8 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-179\n-_\b1_\b8_\b0 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b1_\b8_\b1 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b1_\b8_\b2 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-183 };\n-184\n-185 template<int dimension, class CoordType>\n-_\b1_\b8_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-187_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-188 : nIntervals_(nIntervals), kuhnIndex(0),\n-189 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vBegin(nIntervals_)),\n-190 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vEnd(nIntervals_))\n-191 {\n-192 if (end)\n-193 kuhnIndex = nKuhnSimplices;\n-194 }\n-195\n-196 template<int dimension, class CoordType>\n-197 void\n-_\b1_\b9_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-199_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-200 {\n-201 ++backend;\n-202 if (backend == backendEnd)\n-203 {\n-204 backend = BackendRefinement::vBegin(nIntervals_);\n-205 ++kuhnIndex;\n-206 }\n-207 }\n-208\n-209 template<int dimension, class CoordType>\n-210 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b2_\b1_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-212_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-213 {\n-214 // while the kuhnIndex runs from 0,1,2 the actual permutations we need are\n-0,2,3\n-215 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n-216 getPermutation<dimension>((kuhnIndex + 2) % 4)));\n-217 }\n-218\n-219 template<int dimension, class CoordType>\n-220 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b2_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n-const\n-222 {\n-223 std::vector<CoordVector> corners(1);\n-224 corners[0] = _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n-225 getPermutation<dimension>((kuhnIndex + 2) % 4)));\n-226 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n-227 }\n-228\n-229 template<int dimension, class CoordType>\n-230 int\n-_\b2_\b3_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-232_\b _\bi_\bn_\bd_\be_\bx() const\n-233 {\n-234 return kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index\n-();\n-235 }\n-236\n-237 // elements\n-238 template<int dimension, class CoordType>\n-_\b2_\b3_\b9 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-240 {\n-241 public:\n-_\b2_\b4_\b2 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b4_\b3 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b4 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b4_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-246\n-247 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n-248\n-249 void increment();\n-250\n-251 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-252 int index() const;\n-253 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-254\n-255 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n-256\n-257 private:\n-258 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n-259\n-260 protected:\n-_\b2_\b6_\b1 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b6_\b2 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b2_\b6_\b3 constexpr static int nKuhnSimplices = 3;\n-264\n-_\b2_\b6_\b5 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n-266\n-_\b2_\b6_\b7 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n-_\b2_\b6_\b8 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n-_\b2_\b6_\b9 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n-270 };\n-271\n-272 template<int dimension, class CoordType>\n-_\b2_\b7_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-274_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n-275 : nIntervals_(nIntervals), kuhnIndex(0),\n-276 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eBegin(nIntervals_)),\n-277 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eEnd(nIntervals_))\n-278 {\n-279 if (end)\n-280 kuhnIndex = nKuhnSimplices;\n-281 }\n-282\n-283 template<int dimension, class CoordType>\n-284 void\n-_\b2_\b8_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-286_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n-287 {\n-288 ++backend;\n-289 if (backend == backendEnd)\n-290 {\n-291 backend = BackendRefinement::eBegin(nIntervals_);\n-292 ++kuhnIndex;\n-293 }\n-294 }\n-295\n-296 template<int dimension, class CoordType>\n-297 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b2_\b9_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-299_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-300 {\n-301 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices = backend.vertexIndices();\n-302\n-303 int base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);\n-304 indices += base;\n-305\n-306 return indices;\n-307 }\n-308\n-309 template<int dimension, class CoordType>\n-310 int\n-_\b3_\b1_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-312_\b _\bi_\bn_\bd_\be_\bx() const\n-313 {\n-314 return kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index\n-();\n-315 }\n-316\n-317 template<int dimension, class CoordType>\n-318 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b1_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-320_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-321 {\n-322 return global(backend.coords());\n-323 }\n-324\n-325 template<int dimension, class CoordType>\n-326 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-_\b3_\b2_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by () const\n-328 {\n-329 const typename BackendIterator::Geometry &bgeo =\n-330 backend.geometry();\n-331 std::vector<CoordVector> corners(dimension+1);\n-332 for(int i = 0; i <= dimension; ++i)\n-333 corners[i] = global(bgeo.corner(i));\n-334\n-335 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(bgeo.type(), corners);\n-336 }\n-337\n-338 template<int dimension, class CoordType>\n-339 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-340 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-341_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const\n-342 {\n-343 // while the kuhnIndex runs from 0,1,2 the actual permutations we need are\n-0,2,3\n-344 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(local, getPermutation<dimension>\n-((kuhnIndex+2)%4)));\n-345 }\n-346\n-347 // common\n-348 template<int dimension, class CoordType>\n-349 template<int codimension>\n-_\b3_\b5_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-351 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n-CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-352 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n-353 {\n-354 public:\n-_\b3_\b5_\b5 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b3_\b5_\b6 typedef SubEntityIterator _\bT_\bh_\bi_\bs;\n-357\n-_\b3_\b5_\b8 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n-359\n-_\b3_\b6_\b0 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n-361 protected:\n-362 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-kuhnIndex;\n-363 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n-backend;\n-364 };\n-365\n-366#ifndef DOXYGEN\n-367 template<int dimension, class CoordType>\n-368 template<int codimension>\n-369 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-370_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n-371 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n-end)\n-372 {}\n-373\n-374 template<int dimension, class CoordType>\n-375 template<int codimension>\n-376 bool\n-377 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-378_\b _\be_\bq_\bu_\ba_\bl_\bs(const This &other) const\n-379 {\n-380 return ((kuhnIndex == other.kuhnIndex) && (backend == other.backend));\n-381 }\n-382#endif\n-383\n-384 } // namespace PrismTriangulation\n-385 } // namespace RefinementImp\n-386\n-387 namespace RefinementImp\n-388 {\n-389 // ///////////////////////\n-390 //\n-391 // The refinement traits\n-392 //\n-393\n-394#ifndef DOXYGEN\n-395 template<unsigned topologyId, class CoordType, unsigned coerceToId>\n-396 struct Traits<\n-397 topologyId, CoordType, coerceToId, 3,\n-398 typename _\bs_\bt_\bd::enable_if<\n-399 (GeometryTypes::prism.id() >> 1) ==\n-400 (topologyId >> 1) &&\n-401 (GeometryTypes::simplex(3).id() >> 1) ==\n-402 (coerceToId >> 1)\n-403 >::type>\n-404 {\n-405 typedef PrismTriangulation::RefinementImp<3, CoordType> Imp;\n-406 };\n-407#endif\n-408\n-409 } // namespace RefinementImp\n-410} // namespace Dune\n-411\n-412#endif // DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n-_\bt_\by_\bp_\be_\b._\bh_\bh\n-A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n-This file contains the Refinement implementation for simplices (triangles,\n-tetrahedrons....\n-_\bb_\ba_\bs_\be_\b._\bc_\bc\n-This file contains the parts independent of a particular Refinement\n-implementation.\n-_\bs_\bt_\bd\n-STL namespace.\n+103 // break if tolerance is reached.\n+104 if (resNorm < opts.absTol)\n+105 return GaussNewtonErrorCode::OK;\n+106 }\n+107\n+108 // tolerance could not be reached\n+109 if (!(resNorm < opts.absTol))\n+110 return GaussNewtonErrorCode::TOLERANCE_NOT_REACHED;\n+111\n+112 return GaussNewtonErrorCode::OK;\n+113}\n+114\n+115} // end namespace Impl\n+116} // end namespace Dune\n+117\n+118#endif // DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n+_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n+An implementation of the Geometry interface for affine geometries.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType,\n-dimension > point)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:50\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n-FieldVector< int, n > getPermutation(int m)\n-Calculate permutation from it's index.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n-FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n-dimension > point, const FieldVector< int, dimension > &kuhn)\n-Map from the reference simplex to some Kuhn simplex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-Static tag representing a codimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-generic geometry implementation based on corner coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:181\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:43\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-Implementation of the refinement of a prism into simplices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:67\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:69\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n-CoordType ctype\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:122\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< int, dimension+1 > IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:78\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:106\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:76\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:130\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:75\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:138\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(int nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:98\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension >\n-Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:100\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:178\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< dimension >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:163\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:174\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< dimension >::SubEntityIterator\n-BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:175\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:162\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:182\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:161\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:181\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:180\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n-int nIntervals_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:265\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Refinement::template Codim< 0 >::Geometry Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:245\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n-BackendIterator backend\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:268\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:243\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:262\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n-int kuhnIndex\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:267\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:244\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:242\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n-const BackendIterator backendEnd\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:269\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Refinement::BackendRefinement BackendRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:261\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bT_\bh_\bi_\bs\n-SubEntityIterator This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:356\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\be_\bq_\bu_\ba_\bl_\bs\n-bool equals(const This &other) const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:355\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(int nIntervals, bool end=false)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00206.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00206.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: base.cc File Reference</title>\n+<title>dune-geometry: referenceelement.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,87 +65,44 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">base.cc File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">referenceelement.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. \n-<a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00206_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01219.html\">Dune::RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension, Dummy ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Mapping from <em>geometryType</em>, <em>CoordType</em> and <em>coerceTo</em> to a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <a href=\"a01219.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01223.html\">Dune::RefinementIntervals</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Holds the number of refined intervals per axis needed for virtual and static refinement. <a href=\"a01223.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01227.html\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension_ ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Wrap each <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation to get a consistent interface. <a href=\"a01227.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01091.html\">Dune::Geo::ReferenceElement< Implementation ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This class provides access to geometric and topological properties of a reference element. <a href=\"a01091.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01231.html\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension_ >::Codim< codimension ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">The <a class=\"el\" href=\"a01231.html\" title=\"The Codim struct inherited from the Refinement implementation.\">Codim</a> struct inherited from the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <a href=\"a01231.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01215.html\">Dune::Geo::ReferenceElement< Implementation >::Codim< codim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Collection of types depending on the codimension. <a href=\"a01215.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:ab8232ef779e57c3676c54a73bd759f72\" id=\"r_ab8232ef779e57c3676c54a73bd759f72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00206.html#ab8232ef779e57c3676c54a73bd759f72\">DUNE_GEOMETRY_REFINEMENT_BASE_CC</a></td></tr>\n-<tr class=\"separator:ab8232ef779e57c3676c54a73bd759f72\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n-Functions</h2></td></tr>\n-<tr class=\"memitem:ga803bd3e72a1dc194c660659d0e87c2d3\" id=\"r_ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01223.html\">RefinementIntervals</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">Dune::refinementIntervals</a> (int intervals)</td></tr>\n-<tr class=\"memdesc:ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Creates a <a class=\"el\" href=\"a01223.html\" title=\"Holds the number of refined intervals per axis needed for virtual and static refinement.\">RefinementIntervals</a> object. <br /></td></tr>\n-<tr class=\"separator:ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:ga93defb58afad2ca665a30f98a30ecd3f\" id=\"r_ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01223.html\">RefinementIntervals</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">Dune::refinementLevels</a> (int levels)</td></tr>\n-<tr class=\"memdesc:ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Creates a <a class=\"el\" href=\"a01223.html\" title=\"Holds the number of refined intervals per axis needed for virtual and static refinement.\">RefinementIntervals</a> object. <br /></td></tr>\n-<tr class=\"separator:ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"ab8232ef779e57c3676c54a73bd759f72\" name=\"ab8232ef779e57c3676c54a73bd759f72\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab8232ef779e57c3676c54a73bd759f72\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_BASE_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_BASE_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,56 +1,25 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-base.cc File Reference\n-This file contains the parts independent of a particular _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+referenceelement.hh File Reference\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bD_\bu_\bm_\bm_\by_\b _\b>\n-\u00a0 Mapping from g\bge\beo\bom\bme\bet\btr\bry\byT\bTy\byp\bpe\be, C\bCo\boo\bor\brd\bdT\bTy\byp\bpe\be and c\bco\boe\ber\brc\bce\beT\bTo\bo to a particular\n- _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\b>\n+\u00a0 This class provides access to geometric and topological properties of\n+ a reference element. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-\u00a0 Holds the number of refined intervals per axis needed for virtual and\n- static refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b_\n- _\b>\n-\u00a0 Wrap each _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation to get a consistent interface.\n- _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b_\n- _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0 The _\bC_\bo_\bd_\bi_\bm struct inherited from the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\b _\b>\n+\u00a0 Collection of types depending on the codimension. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bB_\bA_\bS_\bE_\b__\bC_\bC\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs (int intervals)\n-\u00a0 Creates a _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs object.\n-\u00a0\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs (int levels)\n-\u00a0 Creates a _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs object.\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the parts independent of a particular _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-implementation.\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_B\bBA\bAS\bSE\bE_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_REFINEMENT_BASE_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00206_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00206_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: base.cc Source File</title>\n+<title>dune-geometry: referenceelement.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,199 +70,265 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">base.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">referenceelement.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00206.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00206.html#ab8232ef779e57c3676c54a73bd759f72\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFERENCEELEMENT_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFERENCEELEMENT_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n-<div class=\"foldopen\" id=\"foldopen00028\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00269.html\"> 28</a></span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> {</div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// /////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// Declaration of RefinementImp::Traits</span></div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// This is just for Doxygen</span></div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class </span>Dummy = <span class=\"keywordtype\">void</span>></div>\n-<div class=\"foldopen\" id=\"foldopen00069\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01219.html\"> 69</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01219.html\">Traits</a></div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> {</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <span class=\"keyword\">typedef</span> SquaringTheCircle::Refinement Imp;</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span><span class=\"preprocessor\">#else </span><span class=\"comment\">// !DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span> <span class=\"keyword\">namespace </span>Geo {</div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span> </div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> <span class=\"keyword\">namespace </span>Impl {</div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> <span class=\"comment\">// forward declaration for friend declaration</span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> <span class=\"keyword\">class </span>ReferenceElementContainer;</div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> }</div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> <span class=\"comment\">// forward declaration for constructing default reference element type</span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> <span class=\"keyword\">class </span>ReferenceElementImplementation;</div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"comment\">// forward declaration for backwards compatibility conversion</span></div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"keyword\">struct </span>ReferenceElements;</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">// ReferenceElement</span></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// ----------------</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> Implementation></div>\n+<div class=\"foldopen\" id=\"foldopen00051\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html\"> 51</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a></div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> {</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> </div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> </div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> </div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codim></div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> <span class=\"keyword\">using </span><a class=\"code hl_struct\" href=\"a01215.html\">Codim</a> = <span class=\"keyword\">typename</span> Implementation::template <a class=\"code hl_struct\" href=\"a01215.html\">Codim<codim></a>;</div>\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> </div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span><span class=\"preprocessor\">#else</span></div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n+<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01215.html\"> 66</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01215.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01215.html#a034c2c384a82b9ab873762f3e533cb93\"> 69</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01215.html#a034c2c384a82b9ab873762f3e533cb93\">Geometry</a> = implementation-defined;</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> </div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\"> 75</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\">ctype</a> = <span class=\"keyword\">typename</span> Implementation::ctype;</div>\n <div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> </div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"comment\">// Doxygen won't see this</span></div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class </span>= <span class=\"keywordtype\">void</span>></div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01219.html\">Traits</a>;</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a904ee1878dfee575ad1a9f06d97cd7c9\"> 78</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01091.html#a904ee1878dfee575ad1a9f06d97cd7c9\">CoordinateField</a> = <a class=\"code hl_typedef\" href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\">ctype</a>;</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\"> 81</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\">Coordinate</a> = <span class=\"keyword\">typename</span> Implementation::Coordinate;</div>\n <div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// !DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#ada4ea6574731d83434fcab134172475c\"> 84</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_typedef\" href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\">ctype</a> <a class=\"code hl_typedef\" href=\"a01091.html#ada4ea6574731d83434fcab134172475c\">Volume</a>;</div>\n <div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> </div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00094\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html\"> 94</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{</div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keywordtype\">int</span> intervals_=1;</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\"> 98</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\">RefinementIntervals</a>(<span class=\"keywordtype\">int</span> i) : intervals_(i) {}</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a4965dd907f2e42fb51a72bed527749f4\"> 87</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01091.html#a4965dd907f2e42fb51a72bed527749f4\">dimension</a> = Implementation::dimension;</div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00094\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\"> 94</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">size</a>(<span class=\"keywordtype\">int</span> c)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">return</span> _impl->size(c);</div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> </div>\n <div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> </div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\"> 100</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> intervals_; }</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> };</div>\n+<div class=\"foldopen\" id=\"foldopen00111\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a4bf3ef51501b21b6997dc2858eae3903\"> 111</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01091.html#a4bf3ef51501b21b6997dc2858eae3903\">size</a>(<span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> <span class=\"keywordflow\">return</span> _impl->size(i,c,cc);</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> </div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00130\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a52a1c8604eff14d75c1b12654e996f36\"> 130</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01091.html#a52a1c8604eff14d75c1b12654e996f36\">subEntity</a>(<span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> ii, <span class=\"keywordtype\">int</span> cc)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordflow\">return</span> _impl->subEntity(i,c,ii,cc);</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00153\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#acd0d9a11eab7d1973c20ec66a445d9a8\"> 153</a></span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01091.html#acd0d9a11eab7d1973c20ec66a445d9a8\">subEntities</a> ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keywordflow\">return</span> _impl->subEntities(i,c,cc);</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> </div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00167\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\"> 167</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">type</a>(<span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> <span class=\"keywordflow\">return</span> _impl->type(i,c);</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> }</div>\n </div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\"> 108</a></span> <span class=\"keyword\">inline</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a> <a class=\"code hl_function\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">refinementIntervals</a>(<span class=\"keywordtype\">int</span> intervals)</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{intervals};</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> }</div>\n-</div>\n-<div class=\"foldopen\" id=\"foldopen00117\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\"> 117</a></span> <span class=\"keyword\">inline</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a> <a class=\"code hl_function\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">refinementLevels</a>(<span class=\"keywordtype\">int</span> levels)</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{1<<levels};</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"comment\">// ///////////////</span></div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"comment\">// Static Refinement</span></div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension_></div>\n-<div class=\"foldopen\" id=\"foldopen00138\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html\"> 138</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01227.html\">StaticRefinement</a></div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> : <span class=\"keyword\">public</span> <a class=\"code hl_struct\" href=\"a01219.html\">RefinementImp::Traits</a><topologyId, CoordType,</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> coerceToId, dimension_ >::Imp</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> {</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00150\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01231.html\"> 150</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01231.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> {</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\"> 157</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\">SubEntityIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> </div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\"> 161</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01231.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\"> 163</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01231.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> </div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\"> 170</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\">CoordVector</a>;</div>\n <div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\"> 177</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00175\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a64fad87d391b72a2fa86908ccfca230d\"> 175</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01091.html#a64fad87d391b72a2fa86908ccfca230d\">type</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keywordflow\">return</span> _impl->type();</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\"> 180</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_>::Imp <a class=\"code hl_typedef\" href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\">RefinementImp</a>;</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keyword\">using </span>RefinementImp::dimension;</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> </div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> <span class=\"keyword\">using </span>RefinementImp::Codim;</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> </div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> <span class=\"keyword\">using </span>typename RefinementImp::VertexIterator;</div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">using </span>typename RefinementImp::CoordVector;</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> </div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">using </span>typename RefinementImp::ElementIterator;</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <span class=\"keyword\">using </span>typename RefinementImp::IndexVector;</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00197\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a8922c129d11181e8206f719803931346\"> 197</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01227.html#a8922c129d11181e8206f719803931346\">nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> {</div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keywordflow\">return</span> RefinementImp::nVertices(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00207\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\"> 207</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> {</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keywordflow\">return</span> RefinementImp::vBegin(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00217\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\"> 217</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> {</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keywordflow\">return</span> RefinementImp::vEnd(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00227\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\"> 227</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> {</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keywordflow\">return</span> RefinementImp::nElements(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00237\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\"> 237</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> {</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"keywordflow\">return</span> RefinementImp::eBegin(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00247\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\"> 247</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> {</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordflow\">return</span> RefinementImp::eEnd(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00260_html_ga803bd3e72a1dc194c660659d0e87c2d3\"><div class=\"ttname\"><a href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">Dune::refinementIntervals</a></div><div class=\"ttdeci\">RefinementIntervals refinementIntervals(int intervals)</div><div class=\"ttdoc\">Creates a RefinementIntervals object.</div><div class=\"ttdef\"><b>Definition</b> base.cc:108</div></div>\n-<div class=\"ttc\" id=\"aa00260_html_ga93defb58afad2ca665a30f98a30ecd3f\"><div class=\"ttname\"><a href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">Dune::refinementLevels</a></div><div class=\"ttdeci\">RefinementIntervals refinementLevels(int levels)</div><div class=\"ttdoc\">Creates a RefinementIntervals object.</div><div class=\"ttdef\"><b>Definition</b> base.cc:117</div></div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00190\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\"> 190</a></span> <a class=\"code hl_typedef\" href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\">Coordinate</a> <a class=\"code hl_function\" href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">position</a>(<span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">return</span> _impl->position(i,c);</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> </div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00203\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a86c9768f9d78be11fec0311cfc8f1c0b\"> 203</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01091.html#a86c9768f9d78be11fec0311cfc8f1c0b\">checkInside</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\">Coordinate</a>& local)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> <span class=\"keywordflow\">return</span> _impl->checkInside(local);</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> </div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codim></div>\n+<div class=\"foldopen\" id=\"foldopen00221\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a4350e85769ab9f00012a23e88c210572\"> 221</a></span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01215.html#a034c2c384a82b9ab873762f3e533cb93\">Codim<codim>::Geometry</a> <a class=\"code hl_function\" href=\"a01091.html#a4350e85769ab9f00012a23e88c210572\">geometry</a>(<span class=\"keywordtype\">int</span> i)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keywordflow\">return</span> _impl->template geometry<codim>(i);</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> </div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00228\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\"> 228</a></span> <a class=\"code hl_typedef\" href=\"a01091.html#a904ee1878dfee575ad1a9f06d97cd7c9\">CoordinateField</a> <a class=\"code hl_function\" href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">volume</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keywordflow\">return</span> _impl->volume();</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> </div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00241\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a8982eb1cdc7d2b272b5bf9c14f0d3e3b\"> 241</a></span> <a class=\"code hl_typedef\" href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\">Coordinate</a> <a class=\"code hl_function\" href=\"a01091.html#a8982eb1cdc7d2b272b5bf9c14f0d3e3b\">integrationOuterNormal</a>(<span class=\"keywordtype\">int</span> face)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"keywordflow\">return</span> _impl->integrationOuterNormal(face);</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> </div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00254\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a29457b4602ae4b658c8736dbfb218a12\"> 254</a></span> <a class=\"code hl_function\" href=\"a01091.html#a29457b4602ae4b658c8736dbfb218a12\">ReferenceElement</a>()</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> : _impl(nullptr)</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00263\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a8339796af468254d43e6212df589e889\"> 263</a></span> <span class=\"keyword\">const</span> Implementation& <a class=\"code hl_function\" href=\"a01091.html#a8339796af468254d43e6212df589e889\">impl</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">return</span> *_impl;</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00269\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a916764c8b2d299b43f9e83a81716effc\"> 269</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01091.html#a916764c8b2d299b43f9e83a81716effc\">operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>& r)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"keywordflow\">return</span> _impl == r._impl;</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00275\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#a340198a6dd52aff883f14c6642cccdf8\"> 275</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01091.html#a340198a6dd52aff883f14c6642cccdf8\">operator!=</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>& r)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"keywordflow\">return</span> not (*<span class=\"keyword\">this</span> == r);</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00281\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01091.html#acab4d67ff741cd32cc5cbfc94e4aba26\"> 281</a></span> <span class=\"keyword\">friend</span> std::size_t <a class=\"code hl_friend\" href=\"a01091.html#acab4d67ff741cd32cc5cbfc94e4aba26\">hash_value</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01091.html\">ReferenceElement</a>& r)</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> {</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">reinterpret_cast<</span>std::size_t<span class=\"keyword\">></span>(r._impl);</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> </div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> <span class=\"comment\">// The implementation must be a friend to construct a wrapper around itself.</span></div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keyword\">friend</span> Implementation;</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> </div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"comment\">// The reference container is a friend to be able to call setImplementation.</span></div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span>Impl::ReferenceElementContainer<<a class=\"code hl_typedef\" href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\">ctype</a>,<a class=\"code hl_variable\" href=\"a01091.html#a4965dd907f2e42fb51a72bed527749f4\">dimension</a>>;</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> </div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"comment\">// Constructor for wrapping an implementation reference (required internally by the default implementation)</span></div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> <a class=\"code hl_function\" href=\"a01091.html#a29457b4602ae4b658c8736dbfb218a12\">ReferenceElement</a>(<span class=\"keyword\">const</span> Implementation& <a class=\"code hl_function\" href=\"a01091.html#a8339796af468254d43e6212df589e889\">impl</a>)</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> : _impl(&<a class=\"code hl_function\" href=\"a01091.html#a8339796af468254d43e6212df589e889\">impl</a>)</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> {}</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> </div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordtype\">void</span> setImplementation(<span class=\"keyword\">const</span> Implementation& <a class=\"code hl_function\" href=\"a01091.html#a8339796af468254d43e6212df589e889\">impl</a>)</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> {</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> _impl = &<a class=\"code hl_function\" href=\"a01091.html#a8339796af468254d43e6212df589e889\">impl</a>;</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> }</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> </div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> <span class=\"keyword\">const</span> Implementation* _impl;</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> </div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span>}</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> </div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> </div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFERENCEELEMENT_HH</span></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01219_html\"><div class=\"ttname\"><a href=\"a01219.html\">Dune::RefinementImp::Traits</a></div><div class=\"ttdoc\">Mapping from geometryType, CoordType and coerceTo to a particular Refinement implementation.</div><div class=\"ttdef\"><b>Definition</b> base.cc:70</div></div>\n-<div class=\"ttc\" id=\"aa01223_html\"><div class=\"ttname\"><a href=\"a01223.html\">Dune::RefinementIntervals</a></div><div class=\"ttdoc\">Holds the number of refined intervals per axis needed for virtual and static refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:94</div></div>\n-<div class=\"ttc\" id=\"aa01223_html_a4e8f7b39059e869a98f60bbecc272659\"><div class=\"ttname\"><a href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\">Dune::RefinementIntervals::RefinementIntervals</a></div><div class=\"ttdeci\">RefinementIntervals(int i)</div><div class=\"ttdef\"><b>Definition</b> base.cc:98</div></div>\n-<div class=\"ttc\" id=\"aa01223_html_abc6853f9d453cefd029e5e221ad78970\"><div class=\"ttname\"><a href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">Dune::RefinementIntervals::intervals</a></div><div class=\"ttdeci\">int intervals() const</div><div class=\"ttdef\"><b>Definition</b> base.cc:100</div></div>\n-<div class=\"ttc\" id=\"aa01227_html\"><div class=\"ttname\"><a href=\"a01227.html\">Dune::StaticRefinement</a></div><div class=\"ttdoc\">Wrap each Refinement implementation to get a consistent interface.</div><div class=\"ttdef\"><b>Definition</b> base.cc:141</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a12852b48095c6a9dcb52a9259090fe00\"><div class=\"ttname\"><a href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">Dune::StaticRefinement::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:247</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a269d7e427663d9584b8c1cf21b80b95a\"><div class=\"ttname\"><a href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">Dune::StaticRefinement::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:237</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a2eca414a7fae0d7774745b81e6b540ac\"><div class=\"ttname\"><a href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">Dune::StaticRefinement::nElements</a></div><div class=\"ttdeci\">static int nElements(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> base.cc:227</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a36b716bea885fc1ca44e78fa31be025d\"><div class=\"ttname\"><a href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">Dune::StaticRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:163</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a8922c129d11181e8206f719803931346\"><div class=\"ttname\"><a href=\"a01227.html#a8922c129d11181e8206f719803931346\">Dune::StaticRefinement::nVertices</a></div><div class=\"ttdeci\">static int nVertices(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> base.cc:197</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a9b24b410ce9d175a603d21bc2d2bdaa4\"><div class=\"ttname\"><a href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">Dune::StaticRefinement::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:207</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_aa1db43f3390896e5f0df86f9c2a056ac\"><div class=\"ttname\"><a href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">Dune::StaticRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:161</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_ab6bda4f34063ff98485b06859e4c3bdf\"><div class=\"ttname\"><a href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\">Dune::StaticRefinement::CoordVector</a></div><div class=\"ttdeci\">typedef CoordVector</div><div class=\"ttdoc\">The CoordVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:170</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_ad21cde66bb348bbc1f4d543142145c70\"><div class=\"ttname\"><a href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">Dune::StaticRefinement::IndexVector</a></div><div class=\"ttdeci\">typedef IndexVector</div><div class=\"ttdoc\">The IndexVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:177</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_ae03d30ecd06ac7aac7f6e3d49948ac05\"><div class=\"ttname\"><a href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\">Dune::StaticRefinement::RefinementImp</a></div><div class=\"ttdeci\">RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_ >::Imp RefinementImp</div><div class=\"ttdef\"><b>Definition</b> base.cc:180</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_afd95b0b6fb8ffdb1e29d09933c491f9f\"><div class=\"ttname\"><a href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">Dune::StaticRefinement::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:217</div></div>\n-<div class=\"ttc\" id=\"aa01231_html\"><div class=\"ttname\"><a href=\"a01231.html\">Dune::StaticRefinement::Codim</a></div><div class=\"ttdoc\">The Codim struct inherited from the Refinement implementation.</div><div class=\"ttdef\"><b>Definition</b> base.cc:151</div></div>\n-<div class=\"ttc\" id=\"aa01231_html_aaa6d7c44a9cd374f213dc194e9426438\"><div class=\"ttname\"><a href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\">Dune::StaticRefinement::Codim::SubEntityIterator</a></div><div class=\"ttdeci\">typedef SubEntityIterator</div><div class=\"ttdoc\">The SubEntityIterator for each codim.</div><div class=\"ttdef\"><b>Definition</b> base.cc:157</div></div>\n+<div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a0afe55b1551e04497fb74a301ace4e77\"><div class=\"ttname\"><a href=\"a01091.html#a0afe55b1551e04497fb74a301ace4e77\">Dune::Geo::ReferenceElement::volume</a></div><div class=\"ttdeci\">CoordinateField volume() const</div><div class=\"ttdoc\">obtain the volume of the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:228</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a1b7089a178a3be8143e8bdd8fd5a4e95\"><div class=\"ttname\"><a href=\"a01091.html#a1b7089a178a3be8143e8bdd8fd5a4e95\">Dune::Geo::ReferenceElement::type</a></div><div class=\"ttdeci\">GeometryType type(int i, int c) const</div><div class=\"ttdoc\">obtain the type of subentity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:167</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a29457b4602ae4b658c8736dbfb218a12\"><div class=\"ttname\"><a href=\"a01091.html#a29457b4602ae4b658c8736dbfb218a12\">Dune::Geo::ReferenceElement::ReferenceElement</a></div><div class=\"ttdeci\">ReferenceElement()</div><div class=\"ttdoc\">Constructs an empty reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:254</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a340198a6dd52aff883f14c6642cccdf8\"><div class=\"ttname\"><a href=\"a01091.html#a340198a6dd52aff883f14c6642cccdf8\">Dune::Geo::ReferenceElement::operator!=</a></div><div class=\"ttdeci\">bool operator!=(const ReferenceElement &r) const</div><div class=\"ttdoc\">Compares for inequality with another reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:275</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a3ac0e9ef3e02ac3e752e4a0c36e1b709\"><div class=\"ttname\"><a href=\"a01091.html#a3ac0e9ef3e02ac3e752e4a0c36e1b709\">Dune::Geo::ReferenceElement::position</a></div><div class=\"ttdeci\">Coordinate position(int i, int c) const</div><div class=\"ttdoc\">position of the barycenter of entity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:190</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a3b59a1d712de5637fcb6a42a06250c6f\"><div class=\"ttname\"><a href=\"a01091.html#a3b59a1d712de5637fcb6a42a06250c6f\">Dune::Geo::ReferenceElement::Coordinate</a></div><div class=\"ttdeci\">typename Implementation::Coordinate Coordinate</div><div class=\"ttdoc\">The coordinate type.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:81</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a4350e85769ab9f00012a23e88c210572\"><div class=\"ttname\"><a href=\"a01091.html#a4350e85769ab9f00012a23e88c210572\">Dune::Geo::ReferenceElement::geometry</a></div><div class=\"ttdeci\">Codim< codim >::Geometry geometry(int i) const</div><div class=\"ttdoc\">obtain the embedding of subentity (i,codim) into the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:221</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a4965dd907f2e42fb51a72bed527749f4\"><div class=\"ttname\"><a href=\"a01091.html#a4965dd907f2e42fb51a72bed527749f4\">Dune::Geo::ReferenceElement::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdoc\">The dimension of the reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:87</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a4bf3ef51501b21b6997dc2858eae3903\"><div class=\"ttname\"><a href=\"a01091.html#a4bf3ef51501b21b6997dc2858eae3903\">Dune::Geo::ReferenceElement::size</a></div><div class=\"ttdeci\">int size(int i, int c, int cc) const</div><div class=\"ttdoc\">number of subentities of codimension cc of subentity (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:111</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a52a1c8604eff14d75c1b12654e996f36\"><div class=\"ttname\"><a href=\"a01091.html#a52a1c8604eff14d75c1b12654e996f36\">Dune::Geo::ReferenceElement::subEntity</a></div><div class=\"ttdeci\">int subEntity(int i, int c, int ii, int cc) const</div><div class=\"ttdoc\">obtain number of ii-th subentity with codim cc of (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:130</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a57ff86820ab992b7927baeac332efc4c\"><div class=\"ttname\"><a href=\"a01091.html#a57ff86820ab992b7927baeac332efc4c\">Dune::Geo::ReferenceElement::ctype</a></div><div class=\"ttdeci\">typename Implementation::ctype ctype</div><div class=\"ttdoc\">The coordinate field type.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:75</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a5b7bed3b1102a6ea1ce66ab57a477ee8\"><div class=\"ttname\"><a href=\"a01091.html#a5b7bed3b1102a6ea1ce66ab57a477ee8\">Dune::Geo::ReferenceElement::size</a></div><div class=\"ttdeci\">int size(int c) const</div><div class=\"ttdoc\">number of subentities of codimension c</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:94</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a64fad87d391b72a2fa86908ccfca230d\"><div class=\"ttname\"><a href=\"a01091.html#a64fad87d391b72a2fa86908ccfca230d\">Dune::Geo::ReferenceElement::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">obtain the type of this reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:175</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a8339796af468254d43e6212df589e889\"><div class=\"ttname\"><a href=\"a01091.html#a8339796af468254d43e6212df589e889\">Dune::Geo::ReferenceElement::impl</a></div><div class=\"ttdeci\">const Implementation & impl() const</div><div class=\"ttdoc\">Returns a reference to the internal implementation object.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:263</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a86c9768f9d78be11fec0311cfc8f1c0b\"><div class=\"ttname\"><a href=\"a01091.html#a86c9768f9d78be11fec0311cfc8f1c0b\">Dune::Geo::ReferenceElement::checkInside</a></div><div class=\"ttdeci\">bool checkInside(const Coordinate &local) const</div><div class=\"ttdoc\">check if a coordinate is in the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:203</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a8982eb1cdc7d2b272b5bf9c14f0d3e3b\"><div class=\"ttname\"><a href=\"a01091.html#a8982eb1cdc7d2b272b5bf9c14f0d3e3b\">Dune::Geo::ReferenceElement::integrationOuterNormal</a></div><div class=\"ttdeci\">Coordinate integrationOuterNormal(int face) const</div><div class=\"ttdoc\">obtain the integration outer normal of the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:241</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a904ee1878dfee575ad1a9f06d97cd7c9\"><div class=\"ttname\"><a href=\"a01091.html#a904ee1878dfee575ad1a9f06d97cd7c9\">Dune::Geo::ReferenceElement::CoordinateField</a></div><div class=\"ttdeci\">ctype CoordinateField</div><div class=\"ttdoc\">The coordinate field type.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:78</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_a916764c8b2d299b43f9e83a81716effc\"><div class=\"ttname\"><a href=\"a01091.html#a916764c8b2d299b43f9e83a81716effc\">Dune::Geo::ReferenceElement::operator==</a></div><div class=\"ttdeci\">bool operator==(const ReferenceElement &r) const</div><div class=\"ttdoc\">Compares for equality with another reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:269</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_acab4d67ff741cd32cc5cbfc94e4aba26\"><div class=\"ttname\"><a href=\"a01091.html#acab4d67ff741cd32cc5cbfc94e4aba26\">Dune::Geo::ReferenceElement::hash_value</a></div><div class=\"ttdeci\">friend std::size_t hash_value(const ReferenceElement &r)</div><div class=\"ttdoc\">Yields a hash value suitable for storing the reference element a in hash table.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:281</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_acd0d9a11eab7d1973c20ec66a445d9a8\"><div class=\"ttname\"><a href=\"a01091.html#acd0d9a11eab7d1973c20ec66a445d9a8\">Dune::Geo::ReferenceElement::subEntities</a></div><div class=\"ttdeci\">auto subEntities(int i, int c, int cc) const</div><div class=\"ttdoc\">Obtain the range of numbers of subentities with codim cc of (i,c)</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:153</div></div>\n+<div class=\"ttc\" id=\"aa01091_html_ada4ea6574731d83434fcab134172475c\"><div class=\"ttname\"><a href=\"a01091.html#ada4ea6574731d83434fcab134172475c\">Dune::Geo::ReferenceElement::Volume</a></div><div class=\"ttdeci\">ctype Volume</div><div class=\"ttdoc\">Type used for volume.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:84</div></div>\n+<div class=\"ttc\" id=\"aa01215_html\"><div class=\"ttname\"><a href=\"a01215.html\">Dune::Geo::ReferenceElement::Codim</a></div><div class=\"ttdoc\">Collection of types depending on the codimension.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:67</div></div>\n+<div class=\"ttc\" id=\"aa01215_html_a034c2c384a82b9ab873762f3e533cb93\"><div class=\"ttname\"><a href=\"a01215.html#a034c2c384a82b9ab873762f3e533cb93\">Dune::Geo::ReferenceElement::Codim::Geometry</a></div><div class=\"ttdeci\">implementation-defined Geometry</div><div class=\"ttdoc\">type of geometry embedding a subentity into the reference element</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:69</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,223 +1,297 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-base.cc\n+referenceelement.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFINEMENT_BASE_CC\n-_\b6#define DUNE_GEOMETRY_REFINEMENT_BASE_CC\n+5#ifndef DUNE_GEOMETRY_REFERENCEELEMENT_HH\n+6#define DUNE_GEOMETRY_REFERENCEELEMENT_HH\n 7\n-15#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-16\n-17namespace _\bD_\bu_\bn_\be\n-18{\n-_\b2_\b8 namespace RefinementImp\n-29 {\n-30 // /////////////////////////////////\n-31 //\n-32 // Declaration of RefinementImp::Traits\n-33 //\n-34\n-35#ifdef DOXYGEN\n-36 // This is just for Doxygen\n-67 template<unsigned topologyId, class CoordType,\n-68 unsigned coerceToId, int dimension, class Dummy = void>\n-_\b6_\b9 struct _\bT_\br_\ba_\bi_\bt_\bs\n-70 {\n-72 typedef SquaringTheCircle::Refinement Imp;\n-73 };\n-74\n-75#else // !DOXYGEN\n+8#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+9\n+10namespace _\bD_\bu_\bn_\be {\n+11 namespace Geo {\n+12\n+13 namespace Impl {\n+14\n+15 // forward declaration for friend declaration\n+16 template<typename ctype, int dim>\n+17 class ReferenceElementContainer;\n+18\n+19 }\n+20\n+21 // forward declaration for constructing default reference element type\n+22 template<typename ctype, int dim>\n+23 class ReferenceElementImplementation;\n+24\n+25 // forward declaration for backwards compatibility conversion\n+26 template<typename ctype, int dim>\n+27 struct ReferenceElements;\n+28\n+29 // ReferenceElement\n+30 // ----------------\n+31\n+50 template<typename Implementation>\n+_\b5_\b1 class _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+52 {\n+53\n+54 public:\n+55\n+56#ifndef DOXYGEN\n+57\n+59 template<int codim>\n+60 using _\bC_\bo_\bd_\bi_\bm = typename Implementation::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\b>;\n+61\n+62#else\n+63\n+65 template< int codim >\n+_\b6_\b6 struct _\bC_\bo_\bd_\bi_\bm\n+67 {\n+_\b6_\b9 using _\bG_\be_\bo_\bm_\be_\bt_\br_\by = implementation-defined;\n+70 };\n+71\n+72#endif // DOXYGEN\n+73\n+_\b7_\b5 using _\bc_\bt_\by_\bp_\be = typename Implementation::ctype;\n 76\n-77 // Doxygen won't see this\n-78\n-79 template<unsigned topologyId, class CoordType,\n-80 unsigned coerceToId, int dimension, class = void>\n-81 struct _\bT_\br_\ba_\bi_\bt_\bs;\n+_\b7_\b8 using _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\bF_\bi_\be_\bl_\bd = _\bc_\bt_\by_\bp_\be;\n+79\n+_\b8_\b1 using _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = typename Implementation::Coordinate;\n 82\n-83#endif // !DOXYGEN\n-84 } // namespace RefinementImp\n+_\b8_\b4 typedef _\bc_\bt_\by_\bp_\be _\bV_\bo_\bl_\bu_\bm_\be;\n 85\n-86\n-_\b9_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{\n-95 int intervals_=1;\n-96\n-97 public:\n-_\b9_\b8 explicit _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs(int i) : intervals_(i) {}\n+_\b8_\b7 static constexpr int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = Implementation::dimension;\n+88\n+89\n+_\b9_\b4 int _\bs_\bi_\bz_\be(int c) const\n+95 {\n+96 return _impl->size(c);\n+97 }\n+98\n 99\n-_\b1_\b0_\b0 int _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs() const { return intervals_; }\n-101 };\n-102\n-_\b1_\b0_\b8 inline _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs(int intervals)\n-109 {\n-110 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{intervals};\n-111 }\n-_\b1_\b1_\b7 inline _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs(int levels)\n-118 {\n-119 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{1<<levels};\n-120 }\n-121\n-122 // ///////////////\n-123 //\n-124 // Static Refinement\n-125 //\n-126\n-136 template<unsigned topologyId, class CoordType,\n-137 unsigned coerceToId, int dimension_>\n-_\b1_\b3_\b8 class _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-139 : public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs<topologyId, CoordType,\n-140 coerceToId, dimension_ >::Imp\n-141 {\n-142 public:\n-143#ifdef DOXYGEN\n-149 template<int codimension>\n-_\b1_\b5_\b0 struct _\bC_\bo_\bd_\bi_\bm\n-151 {\n-_\b1_\b5_\b7 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-158 };\n-159\n-_\b1_\b6_\b1 typedef _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b1_\b6_\b3 typedef _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-164\n-_\b1_\b7_\b0 typedef _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b1_\b1_\b1 int _\bs_\bi_\bz_\be(int i, int c, int cc) const\n+112 {\n+113 return _impl->size(i,c,cc);\n+114 }\n+115\n+116\n+_\b1_\b3_\b0 int _\bs_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by(int i, int c, int ii, int cc) const\n+131 {\n+132 return _impl->subEntity(i,c,ii,cc);\n+133 }\n+134\n+_\b1_\b5_\b3 auto _\bs_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\bi_\be_\bs ( int i, int c, int cc ) const\n+154 {\n+155 return _impl->subEntities(i,c,cc);\n+156 }\n+157\n+158\n+_\b1_\b6_\b7 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be(int i, int c) const\n+168 {\n+169 return _impl->type(i,c);\n+170 }\n 171\n-_\b1_\b7_\b7 typedef _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-178#endif\n+172\n+_\b1_\b7_\b5 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be() const\n+176 {\n+177 return _impl->type();\n+178 }\n 179\n-_\b1_\b8_\b0 typedef typename RefinementImp::Traits< topologyId, CoordType, coerceToId,\n-dimension_>::Imp _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp;\n-181\n-182 using RefinementImp::dimension;\n-183\n-184 using RefinementImp::Codim;\n-185\n-186 using typename RefinementImp::VertexIterator;\n-187 using typename RefinementImp::CoordVector;\n-188\n-189 using typename RefinementImp::ElementIterator;\n-190 using typename RefinementImp::IndexVector;\n-191\n-_\b1_\b9_\b7 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-198 {\n-199 return RefinementImp::nVertices(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-200 }\n-201\n-_\b2_\b0_\b7 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-208 {\n-209 return RefinementImp::vBegin(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-210 }\n-211\n-_\b2_\b1_\b7 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-218 {\n-219 return RefinementImp::vEnd(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-220 }\n-221\n-_\b2_\b2_\b7 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-228 {\n-229 return RefinementImp::nElements(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-230 }\n-231\n-_\b2_\b3_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-238 {\n-239 return RefinementImp::eBegin(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-240 }\n-241\n-_\b2_\b4_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-248 {\n-249 return RefinementImp::eEnd(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n-250 }\n-251 };\n-252\n-254} // namespace Dune\n-255\n-256#endif // DUNE_GEOMETRY_REFINEMENT_BASE_CC\n+180\n+_\b1_\b9_\b0 _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn(int i, int c) const\n+191 {\n+192 return _impl->position(i,c);\n+193 }\n+194\n+195\n+_\b2_\b0_\b3 bool _\bc_\bh_\be_\bc_\bk_\bI_\bn_\bs_\bi_\bd_\be(const _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& local) const\n+204 {\n+205 return _impl->checkInside(local);\n+206 }\n+207\n+208\n+220 template<int codim>\n+_\b2_\b2_\b1 typename _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bg_\be_\bo_\bm_\be_\bt_\br_\by(int i) const\n+222 {\n+223 return _impl->template geometry<codim>(i);\n+224 }\n+225\n+226\n+_\b2_\b2_\b8 _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\bF_\bi_\be_\bl_\bd _\bv_\bo_\bl_\bu_\bm_\be() const\n+229 {\n+230 return _impl->volume();\n+231 }\n+232\n+233\n+_\b2_\b4_\b1 _\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bO_\bu_\bt_\be_\br_\bN_\bo_\br_\bm_\ba_\bl(int face) const\n+242 {\n+243 return _impl->integrationOuterNormal(face);\n+244 }\n+245\n+246\n+_\b2_\b5_\b4 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt()\n+255 : _impl(nullptr)\n+256 {}\n+257\n+_\b2_\b6_\b3 const Implementation& _\bi_\bm_\bp_\bl() const\n+264 {\n+265 return *_impl;\n+266 }\n+267\n+_\b2_\b6_\b9 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& r) const\n+270 {\n+271 return _impl == r._impl;\n+272 }\n+273\n+_\b2_\b7_\b5 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& r) const\n+276 {\n+277 return not (*this == r);\n+278 }\n+279\n+_\b2_\b8_\b1 friend std::size_t _\bh_\ba_\bs_\bh_\b__\bv_\ba_\bl_\bu_\be(const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& r)\n+282 {\n+283 return reinterpret_cast<std::size_t>(r._impl);\n+284 }\n+285\n+286 private:\n+287\n+288 // The implementation must be a friend to construct a wrapper around\n+itself.\n+289 friend Implementation;\n+290\n+291 // The reference container is a friend to be able to call\n+setImplementation.\n+292 friend class Impl::ReferenceElementContainer<_\bc_\bt_\by_\bp_\be,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n+293\n+294 // Constructor for wrapping an implementation reference (required\n+internally by the default implementation)\n+295 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt(const Implementation& _\bi_\bm_\bp_\bl)\n+296 : _impl(&_\bi_\bm_\bp_\bl)\n+297 {}\n+298\n+299 void setImplementation(const Implementation& _\bi_\bm_\bp_\bl)\n+300 {\n+301 _impl = &_\bi_\bm_\bp_\bl;\n+302 }\n+303\n+304 const Implementation* _impl;\n+305\n+306 };\n+307\n+308 }\n+309\n+310}\n+311\n+312\n+313#endif // DUNE_GEOMETRY_REFERENCEELEMENT_HH\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-RefinementIntervals refinementIntervals(int intervals)\n-Creates a RefinementIntervals object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs\n-RefinementIntervals refinementLevels(int levels)\n-Creates a RefinementIntervals object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:117\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs\n-Mapping from geometryType, CoordType and coerceTo to a particular Refinement\n-implementation.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:70\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-Holds the number of refined intervals per axis needed for virtual and static\n-refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:94\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-RefinementIntervals(int i)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:98\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b:_\b:_\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-int intervals() const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:100\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Wrap each Refinement implementation to get a consistent interface.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:141\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(Dune::RefinementIntervals tag)\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:247\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(Dune::RefinementIntervals tag)\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:237\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(Dune::RefinementIntervals tag)\n-Get the number of Elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:227\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-The ElementIterator of the Refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:163\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(Dune::RefinementIntervals tag)\n-Get the number of Vertices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:197\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(Dune::RefinementIntervals tag)\n-Get a VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:207\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-The VertexIterator of the Refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:161\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-typedef CoordVector\n-The CoordVector of the Refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:170\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-typedef IndexVector\n-The IndexVector of the Refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:177\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_ >::Imp\n-RefinementImp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:180\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(Dune::RefinementIntervals tag)\n-Get a VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:217\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-The Codim struct inherited from the Refinement implementation.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:151\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-typedef SubEntityIterator\n-The SubEntityIterator for each codim.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:157\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+This class provides access to geometric and topological properties of a\n+reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:52\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n+CoordinateField volume() const\n+obtain the volume of the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:228\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type(int i, int c) const\n+obtain the type of subentity (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:167\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+ReferenceElement()\n+Constructs an empty reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:254\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=\n+bool operator!=(const ReferenceElement &r) const\n+Compares for inequality with another reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:275\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n+Coordinate position(int i, int c) const\n+position of the barycenter of entity (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:190\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+typename Implementation::Coordinate Coordinate\n+The coordinate type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:81\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by\n+Codim< codim >::Geometry geometry(int i) const\n+obtain the embedding of subentity (i,codim) into the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:221\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+The dimension of the reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:87\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bi_\bz_\be\n+int size(int i, int c, int cc) const\n+number of subentities of codimension cc of subentity (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:111\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by\n+int subEntity(int i, int c, int ii, int cc) const\n+obtain number of ii-th subentity with codim cc of (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:130\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bc_\bt_\by_\bp_\be\n+typename Implementation::ctype ctype\n+The coordinate field type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:75\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bi_\bz_\be\n+int size(int c) const\n+number of subentities of codimension c\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:94\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bt_\by_\bp_\be\n+GeometryType type() const\n+obtain the type of this reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:175\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bi_\bm_\bp_\bl\n+const Implementation & impl() const\n+Returns a reference to the internal implementation object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:263\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bc_\bh_\be_\bc_\bk_\bI_\bn_\bs_\bi_\bd_\be\n+bool checkInside(const Coordinate &local) const\n+check if a coordinate is in the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:203\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bO_\bu_\bt_\be_\br_\bN_\bo_\br_\bm_\ba_\bl\n+Coordinate integrationOuterNormal(int face) const\n+obtain the integration outer normal of the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:241\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\bF_\bi_\be_\bl_\bd\n+ctype CoordinateField\n+The coordinate field type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:78\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n+bool operator==(const ReferenceElement &r) const\n+Compares for equality with another reference element.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:269\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bh_\ba_\bs_\bh_\b__\bv_\ba_\bl_\bu_\be\n+friend std::size_t hash_value(const ReferenceElement &r)\n+Yields a hash value suitable for storing the reference element a in hash table.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:281\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bs_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\bi_\be_\bs\n+auto subEntities(int i, int c, int cc) const\n+Obtain the range of numbers of subentities with codim cc of (i,c)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:153\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n+ctype Volume\n+Type used for volume.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:84\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+Collection of types depending on the codimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:67\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+implementation-defined Geometry\n+type of geometry embedding a subentity into the reference element\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:69\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00209.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00209.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: hcube.cc File Reference</title>\n+<title>dune-geometry: dimension.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,88 +65,42 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">hcube.cc File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">dimension.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). \n-<a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/iteratorfacades.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/axisalignedcubegeometry.hh</a>></code><br />\n-<code>#include "<a class=\"el\" href=\"a00206_source.html\">base.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <type_traits></code><br />\n </div>\n <p><a href=\"a00209_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01235.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\"><a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes <a href=\"a01235.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01239.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01243.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, codimension ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">SubEntityIterator base class for hypercube refinement. <a href=\"a01243.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01115.html\">Dune::Dim< dim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Static tag representing a dimension. <a href=\"a01115.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01247.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01251.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01255.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01119.html\">Dune::Codim< codim ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Static tag representing a codimension. <a href=\"a01119.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n-<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00270\" id=\"r_a00270\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00270.html\">Dune::RefinementImp::HCube</a></td></tr>\n-<tr class=\"memdesc:a00270\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\" title=\"Cube element in any nonnegative dimension.\">GeometryType::cube</a>). <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:a2be7a03e64dedaaa1cf5c7c8e2a9cf60\" id=\"r_a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00209.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</a></td></tr>\n-<tr class=\"separator:a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). </p>\n-<p>See <a class=\"el\" href=\"a00257.html\">Refinement implementation for hypercubes</a>. </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"a2be7a03e64dedaaa1cf5c7c8e2a9cf60\" name=\"a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,60 +1,22 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n-hcube.cc File Reference\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes\n-(quadrilaterals, hexahedrons, etc.). _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <cassert>\n-#include <dune/common/fvector.hh>\n-#include <dune/common/iteratorfacades.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+dimension.hh File Reference\n+#include <type_traits>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm_\b<_\b _\bd_\bi_\bm_\b _\b>\n+\u00a0 Static tag representing a dimension. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n- _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0 SubEntityIterator base class for hypercube refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n- _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\b _\b>\n+\u00a0 Static tag representing a codimension. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be\n-\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n- hypercubes (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be).\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bH_\bC_\bU_\bB_\bE_\b__\bC_\bC\n-\u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes\n-(quadrilaterals, hexahedrons, etc.).\n-See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bh_\by_\bp_\be_\br_\bc_\bu_\bb_\be_\bs.\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_H\bHC\bCU\bUB\bBE\bE_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00209_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00209_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: hcube.cc Source File</title>\n+<title>dune-geometry: dimension.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,478 +70,58 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">hcube.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">dimension.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00209.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00209.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_DIMENSION_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_DIMENSION_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> </div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/axisalignedcubegeometry.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00206.html\">base.cc</a>"</span> <span class=\"comment\">// for RefinementTraits</span></div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span>{</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> {</div>\n-<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00270.html\"> 61</a></span> <span class=\"keyword\">namespace </span>HCube</div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> {</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00073\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html\"> 73</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> {</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\"> 77</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a> = dimension_;</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> <span class=\"comment\">//- Know yourself</span></div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\"> 79</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01239.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\"> 83</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01239.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\"> 84</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01239.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\"> 86</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, (1<<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>)> <a class=\"code hl_typedef\" href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">nVertices</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">vBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">vEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> </div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">nElements</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">eBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">eEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00099\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01239.html\"> 99</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01239.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> {</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\"> 102</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Geometry</a>;</div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> </div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keywordtype\">unsigned</span></div>\n-<div class=\"foldopen\" id=\"foldopen00107\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\"> 107</a></span> <a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span><a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\"> nVertices</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// return (nIntervals + 1)^dim</span></div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals+1u, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> </div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00116\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\"> 116</a></span> <a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span><a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\"> vBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>(0,nIntervals);</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\"> 124</a></span> <a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span><a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\"> vEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>(nVertices(nIntervals),nIntervals);</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"keywordtype\">unsigned</span></div>\n-<div class=\"foldopen\" id=\"foldopen00132\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\"> 132</a></span> <a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span><a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\"> nElements</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> {</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">static_assert</span>(dimension >= 0,</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"stringliteral\">"Negative dimension given, what the heck is that supposed to mean?"</span>);</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> <span class=\"comment\">// return nIntervals^dim</span></div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(dimension));</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> </div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00143\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\"> 143</a></span> <a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\"> eBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> {</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>(0,nIntervals);</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> </div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00151\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\"> 151</a></span> <a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">RefinementImp<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span><a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\"> eEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> {</div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>(nElements(nIntervals),nIntervals);</div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> </div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"comment\">// The iterators</span></div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01243.html\"> 174</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a> {};</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span><span class=\"preprocessor\">#else </span></div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">//DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"comment\">// for vertices</span></div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00183\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html\"> 183</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> {</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\"> 186</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\"> 187</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a>;</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\"> 188</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> </div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> </div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a> & asCommon()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a>*<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>);</div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> </div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> <span class=\"keyword\">typename</span> RefinementSubEntityIteratorSpecial<dimension, CoordType, dimension>::CoordVector</div>\n-<div class=\"foldopen\" id=\"foldopen00201\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a6e351e5fab7eefb3a9ce6c6bb60b2ddd\"> 201</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span><a class=\"code hl_class\" href=\"a01243.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> std::array<unsigned int, dimension> v(asCommon().vertexCoord());</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a> c;</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d = 0; d < dimension; d++)</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> {</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> c[d] = v[d]*1.0 / asCommon()._nIntervals;</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> }</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"keywordflow\">return</span> c;</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"comment\">// for elements</span></div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00216\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html\"> 216</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> {</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\"> 219</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\"> 220</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a>;</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\"> 221</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\"> 222</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> </div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> </div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a> & asCommon()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a>*<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>);</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> }</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> <span class=\"keyword\">typename</span> RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::IndexVector</div>\n-<div class=\"foldopen\" id=\"foldopen00236\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a1103c0d47abdc5efba90f13337311709\"> 236</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span><a class=\"code hl_class\" href=\"a01243.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nIndices = 1 << dimension;</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"comment\">// cell index tuple</span></div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> std::array<unsigned int, dimension> e(asCommon().cellCoord());</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> <span class=\"comment\">// vertices</span></div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a> vec;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < nIndices; ++i)</div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> {</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordtype\">int</span> base = 1;</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> std::array<unsigned int, dimension> alpha(asCommon().idx2multiidx(i));</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d = 0; d < dimension; d++) {</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> vec[i] += (alpha[d] + e[d]) * base;</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> base *= asCommon()._nIntervals+1;</div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> }</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> }</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"keywordflow\">return</span> vec;</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#aff11904f643c5e851bec07d0786ed42d\"> 260</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><a class=\"code hl_class\" href=\"a01243.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> std::array<unsigned int, dimension> v(asCommon().cellCoord());</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a> c;</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d=0; d<dimension; d++)</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> {</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> c[d] = (v[d]*1.0 + 0.5) / asCommon()._nIntervals;</div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> }</div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keywordflow\">return</span> c;</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> </div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"comment\">// common</span></div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00275\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html\"> 275</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01239.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension,</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> {</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\"> 281</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\"> 282</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01239.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> </div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\"> 284</a></span> <a class=\"code hl_function\" href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\">SubEntityIterator</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> index, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nIntervals);</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> </div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\"> 286</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\"> 287</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\">increment</a>();</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\"> 289</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\">index</a>() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\"> 290</a></span> Geometry <a class=\"code hl_function\" href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\">geometry</a> () <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>, CoordType, codimension>;</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> _index;</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> _nIntervals;</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> </div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> cellCoord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">return</span> idx2coord(idx, _nIntervals);</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> }</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> </div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> vertexCoord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">return</span> idx2coord(idx, _nIntervals+1u);</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> cellCoord()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keywordflow\">return</span> cellCoord(_index);</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> }</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> </div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> vertexCoord()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keywordflow\">return</span> vertexCoord(_index);</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> }</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> </div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> idx2coord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> w)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> std::array<unsigned int, dimension> c;</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> d = 0; d < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; d++)</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> {</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> c[d] = idx%w;</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> idx = idx/w;</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> }</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> c;</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> coord2idx(std::array<unsigned int, dimension> c, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> w)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0;</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> d = <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; d > 0; d--)</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> {</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> i *= w;</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> i += c[d-1];</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> }</div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keywordflow\">return</span> i;</div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> }</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> </div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> std::array<unsigned int, dimension></div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> idx2multiidx(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> std::array<unsigned int, dimension> alpha;</div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; ++i)</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> alpha[i] = (idx >> i) & 1u;</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> <span class=\"keywordflow\">return</span> alpha;</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> }</div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> SubEntityIterator(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> index, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nIntervals)</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> : _index(index), _nIntervals(nIntervals)</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> {}</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> equals(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keywordflow\">return</span> ((_index == other._index) && (_nIntervals == other._nIntervals));</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> }</div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span> </div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> increment()</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> {</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> ++_index;</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> }</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> </div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> index()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">return</span> _index;</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> }</div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> </div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">typename</span> RefinementImp<dimension, CoordType>::template Codim<codimension>::Geometry</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::geometry ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> std::array<unsigned int,dimension> intCoords = idx2coord(_index,_nIntervals);</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> </div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> Dune::FieldVector<CoordType,dimension> lower;</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> Dune::FieldVector<CoordType,dimension> upper;</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> </div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> assert(codimension == 0 or codimension == <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>);</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> </div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span> (codimension == 0) {</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> j = 0; j < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; j++)</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> {</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> lower[j] = double(intCoords[j]) / double(_nIntervals);</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> upper[j] = double(intCoords[j] + 1) / double(_nIntervals);</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> }</div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> </div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">typename</span> RefinementImp<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>,</div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> CoordType>::template <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Codim<codimension>::Geometry</a>(lower,upper);</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> } <span class=\"keywordflow\">else</span> {</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> j = 0; j < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; j++)</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> lower[j] = upper[j] = <span class=\"keywordtype\">double</span>(intCoords[j]) / double(_nIntervals);</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> </div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">typename</span> RefinementImp<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>,</div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> CoordType>::template <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Codim<codimension>::Geometry</a>(lower,upper,std::bitset<dimension>(0));</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> }</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> </div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> </div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> } <span class=\"comment\">// namespace HCube</span></div>\n-</div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> </div>\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"comment\">// ///////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"comment\">// The refinement traits</span></div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> </div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId,</div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> <span class=\"keyword\">struct </span>Traits<</div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> topologyId, CoordType, coerceToId, dim,</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> (dim >= 2 &&</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> (GeometryTypes::cube(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> (topologyId >> 1) &&</div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> (GeometryTypes::cube(dim).id() >> 1) ==</div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> (coerceToId >> 1)</div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> )>::type</div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> ></div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> {</div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keyword\">typedef</span> HCube::RefinementImp<dim, CoordType> Imp;</div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> };</div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span><span class=\"preprocessor\">#endif</span></div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> </div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> </div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> </div>\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n-<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">axisalignedcubegeometry.hh</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div></div>\n-<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span> </div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"foldopen\" id=\"foldopen00014\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01115.html\"> 14</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01115.html\">Dim</a></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> : <span class=\"keyword\">public</span> std::integral_constant<int,dim></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> {</div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\"> 17</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01115.html\">Dim</a> <a class=\"code hl_typedef\" href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\">type</a>;</div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codim></div>\n+<div class=\"foldopen\" id=\"foldopen00022\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01119.html\"> 22</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01119.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> : <span class=\"keyword\">public</span> std::integral_constant<int,codim></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> {</div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\"> 25</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01119.html\">Codim</a> <a class=\"code hl_typedef\" href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\">type</a>;</div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> </div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span>}</div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> </div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_DIMENSION_HH</span></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01111_html\"><div class=\"ttname\"><a href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:50</div></div>\n+<div class=\"ttc\" id=\"aa01115_html\"><div class=\"ttname\"><a href=\"a01115.html\">Dune::Dim</a></div><div class=\"ttdoc\">Static tag representing a dimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:16</div></div>\n+<div class=\"ttc\" id=\"aa01115_html_af52f0253259aefd87ee25e1dd63342a8\"><div class=\"ttname\"><a href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\">Dune::Dim::type</a></div><div class=\"ttdeci\">Dim type</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:17</div></div>\n <div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01235_html\"><div class=\"ttname\"><a href=\"a01235.html\">Dune::RefinementImp::HCube::RefinementImp</a></div><div class=\"ttdoc\">Refinement implementation for hypercubes</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:74</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a08d274f5daa8f84e2135818bb9670fd8\"><div class=\"ttname\"><a href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">Dune::RefinementImp::HCube::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:85</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a09677c53ba97d4a738d262015c036a3c\"><div class=\"ttname\"><a href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">Dune::RefinementImp::HCube::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:152</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a284b1a78268bd7ea7bf90fcae61129e1\"><div class=\"ttname\"><a href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">Dune::RefinementImp::HCube::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static unsigned nVertices(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:108</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a4324744c8c434b685eca377ab827ac3e\"><div class=\"ttname\"><a href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">Dune::RefinementImp::HCube::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:125</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a5ee6908ce16efd99fb0354742e2885e9\"><div class=\"ttname\"><a href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\">Dune::RefinementImp::HCube::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int,(1<< dimension)> IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:86</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a80c2305efd10c38620e8f8afa70d01cf\"><div class=\"ttname\"><a href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">Dune::RefinementImp::HCube::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:83</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a881d15670845010ba5d3f94dbf495857\"><div class=\"ttname\"><a href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\">Dune::RefinementImp::HCube::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:84</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_a900fa8d3c7a2740407d0ec2fc5e55684\"><div class=\"ttname\"><a href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">Dune::RefinementImp::HCube::RefinementImp::nElements</a></div><div class=\"ttdeci\">static unsigned nElements(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:133</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_aa3f8d065224585bbe31b37cbe791b78c\"><div class=\"ttname\"><a href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\">Dune::RefinementImp::HCube::RefinementImp::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:79</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_ac5d2fb3b236deb949361083733c85a21\"><div class=\"ttname\"><a href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">Dune::RefinementImp::HCube::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:144</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_ae88d11481e19f2152fe0a3aac1d4781e\"><div class=\"ttname\"><a href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">Dune::RefinementImp::HCube::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdoc\">Know your own dimension.</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:77</div></div>\n-<div class=\"ttc\" id=\"aa01235_html_aeb9fffe7bec17cceb9a08d577a616ebe\"><div class=\"ttname\"><a href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">Dune::RefinementImp::HCube::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:117</div></div>\n-<div class=\"ttc\" id=\"aa01239_html\"><div class=\"ttname\"><a href=\"a01239.html\">Dune::RefinementImp::HCube::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> hcube.cc:100</div></div>\n-<div class=\"ttc\" id=\"aa01239_html_a5d34d00f90284ebc56413c9a733164bd\"><div class=\"ttname\"><a href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Dune::RefinementImp::HCube::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::AxisAlignedCubeGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:102</div></div>\n-<div class=\"ttc\" id=\"aa01243_html\"><div class=\"ttname\"><a href=\"a01243.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial</a></div><div class=\"ttdoc\">SubEntityIterator base class for hypercube refinement.</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:174</div></div>\n-<div class=\"ttc\" id=\"aa01247_html_a3fe7bbb96d2ba3c90484d21fece4f92b\"><div class=\"ttname\"><a href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:188</div></div>\n-<div class=\"ttc\" id=\"aa01247_html_a8755fd1fe3f4ac92bc5ffb221d889ea4\"><div class=\"ttname\"><a href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:187</div></div>\n-<div class=\"ttc\" id=\"aa01247_html_abdbfc89c15f5fcc4c0bd94a13079d412\"><div class=\"ttname\"><a href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:186</div></div>\n-<div class=\"ttc\" id=\"aa01251_html_a1214161126dc70a8e6e0bb5e7d948276\"><div class=\"ttname\"><a href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:219</div></div>\n-<div class=\"ttc\" id=\"aa01251_html_a76a800df943b45a5a45e0a26238433ea\"><div class=\"ttname\"><a href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:220</div></div>\n-<div class=\"ttc\" id=\"aa01251_html_a84732012172707ac559624d0b864a83b\"><div class=\"ttname\"><a href=\"a01251.html#a84732012172707ac559624d0b864a83b\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:222</div></div>\n-<div class=\"ttc\" id=\"aa01251_html_ab70205ae51bc66b8fc0aa7938110d715\"><div class=\"ttname\"><a href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:221</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_a297f10ce6b24ef267266d9830f525c57\"><div class=\"ttname\"><a href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(unsigned int index, unsigned int nIntervals)</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_a2fb42d84cb273427af4097ea28dd1aee\"><div class=\"ttname\"><a href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_a7c25c676a3046e97f629a2c4977ccf9d\"><div class=\"ttname\"><a href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::geometry</a></div><div class=\"ttdeci\">Geometry geometry() const</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_a8cc257f66d6e80a619d08ddec8c30f49\"><div class=\"ttname\"><a href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:281</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_ae383a0a4fa66a36e4e40fd18d0966057\"><div class=\"ttname\"><a href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::index</a></div><div class=\"ttdeci\">int index() const</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_ae6aa3faec76941263f9ee6290e83be4f\"><div class=\"ttname\"><a href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::increment</a></div><div class=\"ttdeci\">void increment()</div></div>\n-<div class=\"ttc\" id=\"aa01255_html_afa1cc85177cf797515a9ddc2c772de71\"><div class=\"ttname\"><a href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">Refinement::template Codim< codimension >::SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:282</div></div>\n+<div class=\"ttc\" id=\"aa01119_html_abaf787307a9d755f9369d8ab2784d515\"><div class=\"ttname\"><a href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\">Dune::Codim::type</a></div><div class=\"ttdeci\">Codim type</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:25</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,529 +1,53 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-hcube.cc\n+dimension.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n-_\b6#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n+5#ifndef DUNE_GEOMETRY_DIMENSION_HH\n+6#define DUNE_GEOMETRY_DIMENSION_HH\n 7\n-41#include <cassert>\n-42\n-43#include <dune/common/fvector.hh>\n-44#include <dune/common/iteratorfacades.hh>\n-45\n-46#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-47#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-48\n-49#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\" // for RefinementTraits\n-50\n-51namespace _\bD_\bu_\bn_\be\n-52{\n-53 namespace RefinementImp\n-54 {\n-_\b6_\b1 namespace HCube\n-62 {\n-72 template<int dimension_, class CoordType>\n-_\b7_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-74 {\n-75 public:\n-_\b7_\b7 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n-78 //- Know yourself\n-_\b7_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-80\n-81 template<int codimension>\n-82 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b8_\b3 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b8_\b4 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b8_\b5 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b8_\b6 typedef FieldVector<int, (1<<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn)> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-87\n-88 static unsigned _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(unsigned nIntervals);\n-89 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(unsigned nIntervals);\n-90 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(unsigned nIntervals);\n-91\n-92 static unsigned _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(unsigned nIntervals);\n-93 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(unsigned nIntervals);\n-94 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(unsigned nIntervals);\n-95 };\n-96\n-97 template<int dimension, class CoordType>\n-98 template<int codimension>\n-_\b9_\b9 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-100 {\n-101 class SubEntityIterator;\n-_\b1_\b0_\b2 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n-codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n-103 };\n-104\n-105 template<int dimension, class CoordType>\n-106 unsigned\n-_\b1_\b0_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-108_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(unsigned nIntervals)\n-109 {\n-110 // return (nIntervals + 1)^dim\n-111 return Dune::power(nIntervals+1u, static_cast<unsigned>(dimension));\n-112 }\n-113\n-114 template<int dimension, class CoordType>\n-115 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b1_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-117_\b _\bv_\bB_\be_\bg_\bi_\bn(unsigned nIntervals)\n-118 {\n-119 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(0,nIntervals);\n-120 }\n-121\n-122 template<int dimension, class CoordType>\n-123 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-125_\b _\bv_\bE_\bn_\bd(unsigned nIntervals)\n-126 {\n-127 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nVertices(nIntervals),nIntervals);\n-128 }\n-129\n-130 template<int dimension, class CoordType>\n-131 unsigned\n-_\b1_\b3_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-133_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(unsigned nIntervals)\n-134 {\n-135 static_assert(dimension >= 0,\n-136 \"Negative dimension given, what the heck is that supposed to mean?\");\n-137 // return nIntervals^dim\n-138 return Dune::power(nIntervals, static_cast<unsigned>(dimension));\n-139 }\n-140\n-141 template<int dimension, class CoordType>\n-142 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b4_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-144_\b _\be_\bB_\be_\bg_\bi_\bn(unsigned nIntervals)\n-145 {\n-146 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(0,nIntervals);\n-147 }\n-148\n-149 template<int dimension, class CoordType>\n-150 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b1_\b5_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-152_\b _\be_\bE_\bn_\bd(unsigned nIntervals)\n-153 {\n-154 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nElements(nIntervals),nIntervals);\n-155 }\n-156\n-157 //\n-158 // The iterators\n-159 //\n-160\n-161#ifdef DOXYGEN\n-173 template<int dimension, class CoordType, int codimension>\n-_\b1_\b7_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl {};\n-175#else\n-176 template<int dimension, class CoordType, int codimension>\n-177 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-178#endif //DOXYGEN\n-179\n-180 // for vertices\n-181\n-182 template<int dimension, class CoordType>\n-_\b1_\b8_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n-184 {\n-185 public:\n-_\b1_\b8_\b6 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b8_\b7 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bC_\bo_\bm_\bm_\bo_\bn;\n-_\b1_\b8_\b8 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-189\n-190 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-191\n-192 private:\n-193 const _\bC_\bo_\bm_\bm_\bo_\bn & asCommon() const\n-194 {\n-195 return *static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn*>(this);\n-196 }\n-197 };\n-198\n-199 template<int dimension, class CoordType>\n-200 typename RefinementSubEntityIteratorSpecial<dimension, CoordType,\n-dimension>::CoordVector\n-_\b2_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-202_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-203 {\n-204 std::array<unsigned int, dimension> v(asCommon().vertexCoord());\n-205 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br c;\n-206 for (int d = 0; d < dimension; d++)\n-207 {\n-208 c[d] = v[d]*1.0 / asCommon()._nIntervals;\n-209 }\n-210 return c;\n-211 }\n-212\n-213 // for elements\n-214\n-215 template<int dimension, class CoordType>\n-_\b2_\b1_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-217 {\n-218 public:\n-_\b2_\b1_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b2_\b0 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bC_\bo_\bm_\bm_\bo_\bn;\n-_\b2_\b2_\b1 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-_\b2_\b2_\b2 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-223\n-224 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-225 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n-226\n-227 private:\n-228 const _\bC_\bo_\bm_\bm_\bo_\bn & asCommon() const\n-229 {\n-230 return *static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn*>(this);\n-231 }\n-232 };\n-233\n-234 template<int dimension, class CoordType>\n-235 typename RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::\n-IndexVector\n-_\b2_\b3_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-237_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-238 {\n-239 constexpr static int nIndices = 1 << dimension;\n-240\n-241 // cell index tuple\n-242 std::array<unsigned int, dimension> e(asCommon().cellCoord());\n-243\n-244 // vertices\n-245 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vec;\n-246 for(int i = 0; i < nIndices; ++i)\n-247 {\n-248 int base = 1;\n-249 std::array<unsigned int, dimension> alpha(asCommon().idx2multiidx(i));\n-250 for (int d = 0; d < dimension; d++) {\n-251 vec[i] += (alpha[d] + e[d]) * base;\n-252 base *= asCommon()._nIntervals+1;\n-253 }\n-254 }\n-255 return vec;\n-256 }\n-257\n-258 template<int dimension, class CoordType>\n-259 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b2_\b6_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-261_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-262 {\n-263 std::array<unsigned int, dimension> v(asCommon().cellCoord());\n-264 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br c;\n-265 for (int d=0; d<dimension; d++)\n-266 {\n-267 c[d] = (v[d]*1.0 + 0.5) / asCommon()._nIntervals;\n-268 }\n-269 return c;\n-270 }\n-271\n-272 // common\n-273 template<int dimension, class CoordType>\n-274 template<int codimension>\n-_\b2_\b7_\b5 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-276 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n-277 CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-278 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n-codimension>\n-279 {\n-280 public:\n-_\b2_\b8_\b1 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b8_\b2 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bT_\bh_\bi_\bs;\n-283\n-_\b2_\b8_\b4 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(unsigned int index, unsigned int nIntervals);\n-285\n-_\b2_\b8_\b6 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n-_\b2_\b8_\b7 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt();\n-288\n-_\b2_\b8_\b9 int _\bi_\bn_\bd_\be_\bx() const;\n-_\b2_\b9_\b0 Geometry _\bg_\be_\bo_\bm_\be_\bt_\br_\by () const;\n-291 private:\n-292 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType,\n-codimension>;\n-293 unsigned int _index;\n-294 unsigned int _nIntervals;\n-295\n-296 std::array<unsigned int, dimension>\n-297 cellCoord(unsigned int idx) const\n-298 {\n-299 return idx2coord(idx, _nIntervals);\n-300 }\n-301\n-302 std::array<unsigned int, dimension>\n-303 vertexCoord(unsigned int idx) const\n-304 {\n-305 return idx2coord(idx, _nIntervals+1u);\n-306 }\n-307\n-308 std::array<unsigned int, dimension>\n-309 cellCoord() const\n-310 {\n-311 return cellCoord(_index);\n-312 }\n-313\n-314 std::array<unsigned int, dimension>\n-315 vertexCoord() const\n-316 {\n-317 return vertexCoord(_index);\n-318 }\n-319\n-320 std::array<unsigned int, dimension>\n-321 idx2coord(unsigned int idx, unsigned int w) const\n-322 {\n-323 std::array<unsigned int, dimension> c;\n-324 for (unsigned int d = 0; d < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; d++)\n-325 {\n-326 c[d] = idx%w;\n-327 idx = idx/w;\n-328 }\n-329 return c;\n-330 }\n-331\n-332 unsigned int\n-333 coord2idx(std::array<unsigned int, dimension> c, unsigned int w) const\n-334 {\n-335 unsigned int i = 0;\n-336 for (unsigned int d = _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; d > 0; d--)\n-337 {\n-338 i *= w;\n-339 i += c[d-1];\n-340 }\n-341 return i;\n-342 }\n-343\n-344 std::array<unsigned int, dimension>\n-345 idx2multiidx(unsigned int idx) const\n-346 {\n-347 std::array<unsigned int, dimension> alpha;\n-348 for (unsigned int i = 0; i < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; ++i)\n-349 alpha[i] = (idx >> i) & 1u;\n-350 return alpha;\n-351 }\n-352 };\n-353\n-354#ifndef DOXYGEN\n-355 template<int dimension, class CoordType>\n-356 template<int codimension>\n-357 RefinementImp<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-358 SubEntityIterator(unsigned int index, unsigned int nIntervals)\n-359 : _index(index), _nIntervals(nIntervals)\n-360 {}\n-361\n-362 template<int dimension, class CoordType>\n-363 template<int codimension>\n-364 bool\n-365 RefinementImp<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-366 equals(const This &other) const\n-367 {\n-368 return ((_index == other._index) && (_nIntervals == other._nIntervals));\n-369 }\n-370\n-371 template<int dimension, class CoordType>\n-372 template<int codimension>\n-373 void\n-374 RefinementImp<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-375 increment()\n-376 {\n-377 ++_index;\n-378 }\n-379\n-380 template<int dimension, class CoordType>\n-381 template<int codimension>\n-382 int\n-383 RefinementImp<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-384 index() const\n-385 {\n-386 return _index;\n-387 }\n-388\n-389 template<int dimension, class CoordType>\n-390 template<int codimension>\n-391 typename RefinementImp<dimension, CoordType>::template Codim<codimension>::\n-Geometry\n-392 RefinementImp<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::geometry () const\n-393 {\n-394 std::array<unsigned int,dimension> intCoords = idx2coord\n-(_index,_nIntervals);\n-395\n-396 Dune::FieldVector<CoordType,dimension> lower;\n-397 Dune::FieldVector<CoordType,dimension> upper;\n-398\n-399 assert(codimension == 0 or codimension == _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n-400\n-401 if constexpr (codimension == 0) {\n-402 for (size_t j = 0; j < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; j++)\n-403 {\n-404 lower[j] = double(intCoords[j]) / double(_nIntervals);\n-405 upper[j] = double(intCoords[j] + 1) / double(_nIntervals);\n-406 }\n-407\n-408 return typename RefinementImp<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn,\n-409 CoordType>::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by(lower,upper);\n-410 } else {\n-411 for (size_t j = 0; j < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; j++)\n-412 lower[j] = upper[j] = double(intCoords[j]) / double(_nIntervals);\n-413\n-414 return typename RefinementImp<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn,\n-415 CoordType>::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by(lower,upper,std::\n-bitset<dimension>(0));\n-416 }\n-417 }\n-418\n-419#endif // DOXYGEN\n-420\n-421 } // namespace HCube\n-422\n-423 // ///////////////////////\n-424 //\n-425 // The refinement traits\n-426 //\n-427\n-428#ifndef DOXYGEN\n-429 template<unsigned topologyId, class CoordType, unsigned coerceToId,\n-430 int dim>\n-431 struct Traits<\n-432 topologyId, CoordType, coerceToId, dim,\n-433 typename _\bs_\bt_\bd::enable_if<\n-434 (dim >= 2 &&\n-435 (GeometryTypes::cube(dim).id() >> 1) ==\n-436 (topologyId >> 1) &&\n-437 (GeometryTypes::cube(dim).id() >> 1) ==\n-438 (coerceToId >> 1)\n-439 )>::type\n-440 >\n-441 {\n-442 typedef HCube::RefinementImp<dim, CoordType> Imp;\n-443 };\n-444#endif\n-445\n-446 } // namespace RefinementImp\n-447\n-448} // namespace Dune\n-449\n-450#endif // DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n-A geometry implementation for axis-aligned hypercubes.\n-_\bb_\ba_\bs_\be_\b._\bc_\bc\n-This file contains the parts independent of a particular Refinement\n-implementation.\n-_\bs_\bt_\bd\n-STL namespace.\n+8#include <type_traits>\n+9\n+10namespace _\bD_\bu_\bn_\be {\n+11\n+13 template<int dim>\n+_\b1_\b4 struct _\bD_\bi_\bm\n+15 : public std::integral_constant<int,dim>\n+16 {\n+_\b1_\b7 typedef _\bD_\bi_\bm _\bt_\by_\bp_\be;\n+18 };\n+19\n+21 template<int codim>\n+_\b2_\b2 struct _\bC_\bo_\bd_\bi_\bm\n+23 : public std::integral_constant<int,codim>\n+24 {\n+_\b2_\b5 typedef _\bC_\bo_\bd_\bi_\bm _\bt_\by_\bp_\be;\n+26 };\n+27\n+28}\n+29\n+30#endif // DUNE_GEOMETRY_DIMENSION_HH\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-A geometry implementation for axis-aligned hypercubes.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm\n+Static tag representing a dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:16\n+_\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm_\b:_\b:_\bt_\by_\bp_\be\n+Dim type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:17\n _\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n Static tag representing a codimension.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-Refinement implementation for hypercubes\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:74\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:85\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:152\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static unsigned nVertices(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:125\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< int,(1<< dimension)> IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:86\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:83\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:84\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static unsigned nElements(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:133\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:79\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:144\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-Know your own dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(unsigned nIntervals)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:117\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:100\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Dune::AxisAlignedCubeGeometry< CoordType, dimension-codimension, dimension >\n-Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:102\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-SubEntityIterator base class for hypercube refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:174\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:188\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n-Refinement::template Codim< dimension >::SubEntityIterator Common\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:187\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:186\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:219\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n-Refinement::template Codim< 0 >::SubEntityIterator Common\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:220\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:222\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:221\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(unsigned int index, unsigned int nIntervals)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n-bool equals(const This &other) const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-Geometry geometry() const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-RefinementImp< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:281\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-int index() const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n-void increment()\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n-Refinement::template Codim< codimension >::SubEntityIterator This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:282\n+_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bt_\by_\bp_\be\n+Codim type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:25\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00212.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00212.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: quadraturerules.hh File Reference</title>\n+<title>dune-geometry: generalvertexorder.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -72,127 +72,50 @@\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#define-members\">Macros</a> |\n-<a href=\"#enum-members\">Enumerations</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">quadraturerules.hh File Reference</div></div>\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">generalvertexorder.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <div class=\"textblock\"><code>#include <algorithm></code><br />\n-<code>#include <iostream></code><br />\n-<code>#include <limits></code><br />\n-<code>#include <mutex></code><br />\n-<code>#include <utility></code><br />\n+<code>#include <cassert></code><br />\n+<code>#include <cstddef></code><br />\n+<code>#include <iterator></code><br />\n <code>#include <vector></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/exceptions.hh></code><br />\n-<code>#include <dune/common/stdstreams.hh></code><br />\n-<code>#include <dune/common/stdthread.hh></code><br />\n-<code>#include <dune/common/visibility.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/typeindex.hh</a>></code><br />\n-<code>#include "quadraturerules/pointquadrature.hh"</code><br />\n-<code>#include "quadraturerules/gausslobattoquadrature.hh"</code><br />\n-<code>#include "quadraturerules/gaussquadrature.hh"</code><br />\n-<code>#include "quadraturerules/gaussradauleftquadrature.hh"</code><br />\n-<code>#include "quadraturerules/gaussradaurightquadrature.hh"</code><br />\n-<code>#include "quadraturerules/jacobi1quadrature.hh"</code><br />\n-<code>#include "quadraturerules/jacobi2quadrature.hh"</code><br />\n-<code>#include "quadraturerules/jacobiNquadrature.hh"</code><br />\n-<code>#include "quadraturerules/prismquadrature.hh"</code><br />\n-<code>#include "quadraturerules/simplexquadrature.hh"</code><br />\n-<code>#include "quadraturerules/tensorproductquadrature.hh"</code><br />\n+<code>#include <dune/common/iteratorfacades.hh></code><br />\n+<code>#include "<a class=\"el\" href=\"a00227_source.html\">type.hh</a>"</code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n </div>\n <p><a href=\"a00212_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01167.html\">std::tuple_size< Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01123.html\">Dune::GeneralVertexOrder< dim, Index_ ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Class providing information on the ordering of vertices. <a href=\"a01123.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01171.html\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01175.html\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01179.html\">Dune::QuadratureOrderOutOfRange</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Exception thrown if a desired <a class=\"el\" href=\"a01183.html\" title=\"Abstract base class for quadrature rules.\">QuadratureRule</a> is not available, because the requested order is to high. <a href=\"a01179.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01163.html\">Dune::QuadraturePoint< ct, dim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Single evaluation point in a quadrature rule. <a href=\"a01163.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01183.html\">Dune::QuadratureRule< ct, dim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Abstract base class for quadrature rules. <a href=\"a01183.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01191.html\">Dune::QuadratureRules< ctype, dim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A container for all quadrature rules of dimension <code>dim</code> <a href=\"a01191.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01187.html\">Dune::QuadratureRuleFactory< ctype, dim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Factory class for creation of quadrature rules, depending on <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>, order and <a class=\"el\" href=\"a00266.html\" title=\"Defines an enum for currently available quadrature rules.\">QuadratureType</a>. <a href=\"a01187.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01195.html\">Dune::QuadratureRuleFactory< ctype, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01199.html\">Dune::QuadratureRuleFactory< ctype, 1 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01203.html\">Dune::QuadratureRuleFactory< ctype, 2 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01207.html\">Dune::QuadratureRuleFactory< ctype, 3 ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01127.html\">Dune::GeneralVertexOrder< dim, Index_ >::iterator</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Iterate over the vertex indices of some sub-entity. <a href=\"a01127.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00262\" id=\"r_a00262\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00262.html\">std</a></td></tr>\n-<tr class=\"memdesc:a00262\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">STL namespace. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00266\" id=\"r_a00266\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00266.html\">Dune::QuadratureType</a></td></tr>\n-<tr class=\"memdesc:a00266\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Defines an <code>enum</code> for currently available quadrature rules. <br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n-Macros</h2></td></tr>\n-<tr class=\"memitem:a0aeda817d7161b7c1afd8dd15ff12f17\" id=\"r_a0aeda817d7161b7c1afd8dd15ff12f17\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00212.html#a0aeda817d7161b7c1afd8dd15ff12f17\">DUNE_INCLUDING_IMPLEMENTATION</a></td></tr>\n-<tr class=\"separator:a0aeda817d7161b7c1afd8dd15ff12f17\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\n-Enumerations</h2></td></tr>\n-<tr class=\"memitem:a7d0a250c55cc0a769535f8fb07731ac4\" id=\"r_a7d0a250c55cc0a769535f8fb07731ac4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">Dune::QuadratureType::Enum</a> { <br />\n-  <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">Dune::QuadratureType::GaussLegendre</a> = 0\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">Dune::QuadratureType::GaussJacobi_1_0</a> = 1\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">Dune::QuadratureType::GaussJacobi_2_0</a> = 2\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">Dune::QuadratureType::GaussJacobi_n_0</a> = 3\n-, <br />\n-  <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">Dune::QuadratureType::GaussLobatto</a> = 4\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">Dune::QuadratureType::GaussRadauLeft</a> = 5\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">Dune::QuadratureType::GaussRadauRight</a> = 6\n-, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">Dune::QuadratureType::size</a>\n-<br />\n- }</td></tr>\n-<tr class=\"separator:a7d0a250c55cc0a769535f8fb07731ac4\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n+Functions</h2></td></tr>\n+<tr class=\"memitem:a77eece3229d82b929dcf4cde0cb2a855\" id=\"r_a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memTemplParams\" colspan=\"2\">template<class InIterator , class OutIterator > </td></tr>\n+<tr class=\"memitem:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">void </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">Dune::reduceOrder</a> (const InIterator &inBegin, const InIterator &inEnd, OutIterator outIt)</td></tr>\n+<tr class=\"memdesc:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Algorithm to reduce vertex order information. <br /></td></tr>\n+<tr class=\"separator:a77eece3229d82b929dcf4cde0cb2a855\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>Interface for quadrature points and rules </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"a0aeda817d7161b7c1afd8dd15ff12f17\" name=\"a0aeda817d7161b7c1afd8dd15ff12f17\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0aeda817d7161b7c1afd8dd15ff12f17\">◆ </a></span>DUNE_INCLUDING_IMPLEMENTATION</h2>\n-\n-<div class=\"memitem\">\n-<div class=\"memproto\">\n- <table class=\"memname\">\n- <tr>\n- <td class=\"memname\">#define DUNE_INCLUDING_IMPLEMENTATION</td>\n- </tr>\n- </table>\n-</div><div class=\"memdoc\">\n-\n-</div>\n-</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,94 +1,35 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bE_\bn_\bu_\bm_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs\n-quadraturerules.hh File Reference\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+generalvertexorder.hh File Reference\n #include <algorithm>\n-#include <iostream>\n-#include <limits>\n-#include <mutex>\n-#include <utility>\n+#include <cassert>\n+#include <cstddef>\n+#include <iterator>\n #include <vector>\n-#include <dune/common/fvector.hh>\n-#include <dune/common/exceptions.hh>\n-#include <dune/common/stdstreams.hh>\n-#include <dune/common/stdthread.hh>\n-#include <dune/common/visibility.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n-#include \"quadraturerules/pointquadrature.hh\"\n-#include \"quadraturerules/gausslobattoquadrature.hh\"\n-#include \"quadraturerules/gaussquadrature.hh\"\n-#include \"quadraturerules/gaussradauleftquadrature.hh\"\n-#include \"quadraturerules/gaussradaurightquadrature.hh\"\n-#include \"quadraturerules/jacobi1quadrature.hh\"\n-#include \"quadraturerules/jacobi2quadrature.hh\"\n-#include \"quadraturerules/jacobiNquadrature.hh\"\n-#include \"quadraturerules/prismquadrature.hh\"\n-#include \"quadraturerules/simplexquadrature.hh\"\n-#include \"quadraturerules/tensorproductquadrature.hh\"\n+#include <dune/common/iteratorfacades.hh>\n+#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\bs_\bi_\bz_\be_\b<_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\b,_\b _\bI_\bn_\bd_\be_\bx_\b__\b _\b>\n+\u00a0 Class providing information on the ordering of vertices. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b0_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n-\u00a0\n-struct \u00a0 _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b1_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be\n-\u00a0 Exception thrown if a desired _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be is not available, because\n- the requested order is to high. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>\n-\u00a0 Single evaluation point in a quadrature rule. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>\n-\u00a0 Abstract base class for quadrature rules. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>\n-\u00a0 A container for all quadrature rules of dimension dim _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>\n-\u00a0 Factory class for creation of quadrature rules, depending on\n- _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, order and _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b1_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b2_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\b3_\b _\b>\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\b,_\b _\bI_\bn_\bd_\be_\bx_\b__\b _\b>_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+\u00a0 Iterate over the vertex indices of some sub-entity. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bs_\bt_\bd\n-\u00a0 STL namespace.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be\n-\u00a0 Defines an enum for currently available quadrature rules.\n-\u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bI_\bN_\bC_\bL_\bU_\bD_\bI_\bN_\bG_\b__\bI_\bM_\bP_\bL_\bE_\bM_\bE_\bN_\bT_\bA_\bT_\bI_\bO_\bN\n-\u00a0\n-E\bEn\bnu\bum\bme\ber\bra\bat\bti\bio\bon\bns\bs\n-enum \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm {\n- \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be = 0 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n- _\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 = 1 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 = 2 , _\bD_\bu_\bn_\be_\b:_\b:\n- _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 = 3 ,\n- \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo = 4 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n- _\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt = 5 , _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt = 6 , _\bD_\bu_\bn_\be_\b:_\b:\n- _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bz_\be\n- }\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template<class InIterator , class OutIterator >\n+void\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br (const InIterator &inBegin, const InIterator &inEnd,\n+ OutIterator outIt)\n+\u00a0 Algorithm to reduce vertex order information.\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Interface for quadrature points and rules\n-*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_I\bIN\bNC\bCL\bLU\bUD\bDI\bIN\bNG\bG_\b_I\bIM\bMP\bPL\bLE\bEM\bME\bEN\bNT\bTA\bAT\bTI\bIO\bON\bN *\b**\b**\b**\b**\b*\n-#define DUNE_INCLUDING_IMPLEMENTATION\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00212_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00212_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: quadraturerules.hh Source File</title>\n+<title>dune-geometry: generalvertexorder.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,502 +74,187 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">quadraturerules.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">generalvertexorder.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00212.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n <div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n <div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n <div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <algorithm></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <iostream></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <mutex></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <utility></span></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/stdstreams.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/stdthread.hh></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/visibility.hh></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <cstddef></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <iterator></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00227.html\">type.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n <div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/typeindex.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// forward declaration</span></div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">class </span>QuadraturePoint;</div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span>}</div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> </div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span><span class=\"comment\">// class specialization of standard classes that allow to use structured bindings on QuadraturePoint</span></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00262.html\">std</a> {</div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01167.html\"> 40</a></span> <span class=\"keyword\">struct </span>tuple_size<<a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> : <span class=\"keyword\">public</span> std::integral_constant<std::size_t,2> {};</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> </div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\"> 43</a></span> <span class=\"keyword\">struct </span>tuple_element<0, <a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> { <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\">type</a> = Dune::FieldVector<ct, dim>; };</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\"> 46</a></span> <span class=\"keyword\">struct </span>tuple_element<1, <a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a>::QuadraturePoint<ct,dim>> { <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\">type</a> = ct; };</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span>}</div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01179.html\"> 55</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01179.html\">QuadratureOrderOutOfRange</a> : <span class=\"keyword\">public</span> NotImplemented {};</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html\"> 66</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01163.html\">QuadraturePoint</a> {</div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\"> 69</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\">dimension</a> = dim;</div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> InIterator, <span class=\"keyword\">class</span> OutIterator></div>\n+<div class=\"foldopen\" id=\"foldopen00040\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\"> 40</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(<span class=\"keyword\">const</span> InIterator& inBegin, <span class=\"keyword\">const</span> InIterator& inEnd,</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> OutIterator outIt)</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">for</span>(InIterator inIt = inBegin; inIt != inEnd; ++inIt, ++outIt)</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> *outIt = std::count_if(inBegin, inEnd, [&](<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& v)</div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> {</div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"keywordflow\">return</span> v < *inIt;</div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> });</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> </div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> dim, <span class=\"keyword\">class</span> Index_ = std::<span class=\"keywordtype\">size_t</span>></div>\n+<div class=\"foldopen\" id=\"foldopen00067\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html\"> 67</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> {</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements<double, dim></a> RefElems;</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">RefElems::ReferenceElement</a> RefElem;</div>\n <div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\"> 72</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\">Field</a>;</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\"> 75</a></span> <span class=\"keyword\">typedef</span> Dune::FieldVector<ct,dim> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>;</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00078\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\"> 78</a></span> <a class=\"code hl_function\" href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\">QuadraturePoint</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>& x, ct w) : <a class=\"code hl_variable\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">local</a>(x), <a class=\"code hl_variable\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">weight_</a>(w)</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00082\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\"> 82</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a>& <a class=\"code hl_function\" href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\">position</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_variable\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">local</a>;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> RefElem refelem;</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> std::vector<Index_> vertexOrder;</div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\"> 77</a></span> <span class=\"keyword\">typedef</span> Index_ <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a>;</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01127.html\">iterator</a>;</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\"> 83</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t <a class=\"code hl_variable\" href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\">dimension</a> = dim;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\"> 85</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &<a class=\"code hl_function\" href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\">type</a>()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> gt; }</div>\n <div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00088\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\"> 88</a></span> <span class=\"keyword\">const</span> ct &<a class=\"code hl_function\" href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\">weight</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_variable\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">weight_</a>;</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> index, std::enable_if_t<(index<=1), <span class=\"keywordtype\">int</span>> = 0></div>\n-<div class=\"foldopen\" id=\"foldopen00112\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#af765c0d87c9730a68d0a4182a1e58942\"> 112</a></span> std::tuple_element_t<index, QuadraturePo<span class=\"keywordtype\">int</span><ct, dim>> get() const</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> {</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> if constexpr (index == 0) {</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> return local;</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> }</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> else {</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> return weight_;</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> }</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> InIterator></div>\n+<div class=\"foldopen\" id=\"foldopen00097\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\"> 97</a></span> <a class=\"code hl_function\" href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\">GeneralVertexOrder</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt_, <span class=\"keyword\">const</span> InIterator &inBegin,</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">const</span> InIterator &inEnd) :</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> refelem(RefElems::general(gt_)), gt(gt_),</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> vertexOrder(refelem.size(dim))</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> { <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(inBegin, inEnd, vertexOrder.begin()); }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\"> 108</a></span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> <a class=\"code hl_function\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">begin</a>(std::size_t codim, std::size_t subEntity)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(*<span class=\"keyword\">this</span>, codim, subEntity); }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00115\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\"> 115</a></span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> <a class=\"code hl_function\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">end</a>(std::size_t codim, std::size_t subEntity)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(*<span class=\"keyword\">this</span>, codim, subEntity,</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> refelem.size(subEntity, codim, dim));</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> }</div>\n </div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n <div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> protected:</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\"> 123</a></span> FieldVector<ct, dim> local;</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\"> 124</a></span> ct weight_;</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00130\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html\"> 130</a></span> namespace QuadratureType {</div>\n-<div class=\"foldopen\" id=\"foldopen00131\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\"> 131</a></span> enum Enum {</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\"> 141</a></span> GaussLegendre = 0,</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> </div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\"> 148</a></span> GaussJacobi_1_0 = 1,</div>\n+<div class=\"foldopen\" id=\"foldopen00128\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\"> 128</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\">getReduced</a>(std::size_t codim, std::size_t subEntity,</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> std::vector<Index>& order)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> order.resize(refelem.size(subEntity, codim, dim));</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <a class=\"code hl_function\" href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">reduceOrder</a>(<a class=\"code hl_function\" href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">begin</a>(codim, subEntity), <a class=\"code hl_function\" href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">end</a>(codim, subEntity),</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> order.begin());</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> </div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> </div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keyword\">template</span><std::<span class=\"keywordtype\">size_t</span> dim, <span class=\"keyword\">class</span> Index_></div>\n+<div class=\"foldopen\" id=\"foldopen00142\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html\"> 142</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a><dim, Index_>::<a class=\"code hl_class\" href=\"a01127.html\">iterator</a> :</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">public</span> Dune::RandomAccessIteratorFacade<iterator, const Index_></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> {</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> *order;</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> std::size_t codim;</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> std::size_t subEntity;</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> std::size_t vertex;</div>\n <div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> </div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\"> 155</a></span> GaussJacobi_2_0 = 2,</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> </div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\"> 168</a></span> GaussJacobi_n_0 = 3,</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> </div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\"> 176</a></span> GaussLobatto = 4,</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\"> 184</a></span> GaussRadauLeft = 5,</div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> </div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\"> 193</a></span> GaussRadauRight = 6,</div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> size</div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\"> 195</a></span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ct, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"foldopen\" id=\"foldopen00213\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html\"> 213</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a> : <span class=\"keyword\">public</span> std::vector<QuadraturePoint<ct,dim> ></div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> {</div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\"> 221</a></span> <a class=\"code hl_function\" href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\">QuadratureRule</a>() : delivered_order(-1) {}</div>\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> </div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\"> 225</a></span> <a class=\"code hl_function\" href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\">QuadratureRule</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> t) : geometry_type(t), delivered_order(-1) {}</div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> </div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\"> 228</a></span> <a class=\"code hl_function\" href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\">QuadratureRule</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> t, <span class=\"keywordtype\">int</span> order) : geometry_type(t), delivered_order(order) {}</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a2d1201427761a54ab6eb316e6dfb00eb\"> 231</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> d = dim;</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> </div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\"> 234</a></span> <span class=\"keyword\">typedef</span> ct <a class=\"code hl_typedef\" href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\">CoordType</a>;</div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> </div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\"> 237</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\">order</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> delivered_order; }</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> </div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\"> 240</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\">type</a> ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> geometry_type; }</div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\"> 241</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\">~QuadratureRule</a>(){}</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> </div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> std::vector<QuadraturePoint<ct,dim> >::const_iterator <a class=\"code hl_typedef\" href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\">iterator</a>;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\"> 248</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_variable\" href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\">geometry_type</a>;</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\"> 249</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\">delivered_order</a>;</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> </div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"comment\">// Forward declaration of the factory class,</span></div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"comment\">// needed internally by the QuadratureRules container class.</span></div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a>;</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html\"> 260</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> {</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a> = <a class=\"code hl_class\" href=\"a01183.html\">Dune::QuadratureRule<ctype, dim></a>;</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"comment\">// indexed by quadrature order</span></div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">using </span>QuadratureOrderVector = std::vector<std::pair<std::once_flag, QuadratureRule> >;</div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> </div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> <span class=\"comment\">// indexed by geometry type</span></div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keyword\">using </span>GeometryTypeVector = std::vector<std::pair<std::once_flag, QuadratureOrderVector> >;</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"comment\">// indexed by quadrature type enum</span></div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keyword\">using </span>QuadratureCacheVector = std::vector<std::pair<std::once_flag, GeometryTypeVector> >;</div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> </div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> DUNE_EXPORT <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& _rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> assert(t.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()==dim);</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> </div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> DUNE_ASSERT_CALL_ONCE();</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> </div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">static</span> QuadratureCacheVector quadratureCache(QuadratureType::size);</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">auto</span>& [ onceFlagQuadratureType, geometryTypes ] = quadratureCache[qt];</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"comment\">// initialize geometry types for this quadrature type once</span></div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> std::call_once(onceFlagQuadratureType, [&types = geometryTypes]{</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> types = GeometryTypeVector(LocalGeometryTypeIndex::size(dim));</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> });</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keyword\">auto</span>& [ onceFlagGeometryType, quadratureOrders ] = geometryTypes[LocalGeometryTypeIndex::index(t)];</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"comment\">// initialize quadrature orders for this geometry type and quadrature type once</span></div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> std::call_once(onceFlagGeometryType, [&, &orders = quadratureOrders]{</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"comment\">// we only need one quadrature rule for points, not maxint</span></div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keyword\">const</span> <span class=\"keyword\">auto</span> numRules = dim == 0 ? 1 : <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::maxOrder</a>(t, qt)+1;</div>\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> orders = QuadratureOrderVector(numRules);</div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> });</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> </div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"comment\">// we only have one quadrature rule for points</span></div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keyword\">auto</span>& [ onceFlagQuadratureOrder, quadratureRule ] = quadratureOrders[dim == 0 ? 0 : p];</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"comment\">// initialize quadrature rule once</span></div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> std::call_once(onceFlagQuadratureOrder, [&, &rule = quadratureRule]{</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> rule = <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::rule</a>(t, p, qt);</div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> });</div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> </div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> <span class=\"keywordflow\">return</span> quadratureRule;</div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> }</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> </div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> DUNE_EXPORT <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a>& instance()</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> {</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> instance;</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keywordflow\">return</span> instance;</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> }</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> </div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a> () = <span class=\"keywordflow\">default</span>;</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span></div>\n-<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\"> 319</a></span> <a class=\"code hl_function\" href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\">maxOrder</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t,</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> {</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory<ctype,dim>::maxOrder</a>(t,qt);</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00326\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\"> 326</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& <a class=\"code hl_function\" href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\">rule</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> {</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <span class=\"keywordflow\">return</span> instance()._rule(t,p,qt);</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00332\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\"> 332</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule</a>& <a class=\"code hl_function\" href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\">rule</a>(<span class=\"keyword\">const</span> <a class=\"code hl_enumeration\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">GeometryType::BasicType</a> t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=QuadratureType::GaussLegendre)</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> {</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt(t,dim);</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">return</span> instance()._rule(gt,p,qt);</div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> </div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span>} <span class=\"comment\">// end namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00212.html#a0aeda817d7161b7c1afd8dd15ff12f17\"> 341</a></span><span class=\"preprocessor\">#define DUNE_INCLUDING_IMPLEMENTATION</span></div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> </div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span><span class=\"comment\">// 0d rules</span></div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span><span class=\"preprocessor\">#include "quadraturerules/pointquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span><span class=\"comment\">// 1d rules</span></div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"preprocessor\">#include "quadraturerules/gausslobattoquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span><span class=\"preprocessor\">#include "quadraturerules/gaussquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span><span class=\"preprocessor\">#include "quadraturerules/gaussradauleftquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span><span class=\"preprocessor\">#include "quadraturerules/gaussradaurightquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span><span class=\"preprocessor\">#include "quadraturerules/jacobi1quadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span><span class=\"preprocessor\">#include "quadraturerules/jacobi2quadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span><span class=\"preprocessor\">#include "quadraturerules/jacobiNquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span><span class=\"comment\">// 3d rules</span></div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"preprocessor\">#include "quadraturerules/prismquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span><span class=\"comment\">// general rules</span></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span><span class=\"preprocessor\">#include "quadraturerules/simplexquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span><span class=\"preprocessor\">#include "quadraturerules/tensorproductquadrature.hh"</span></div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span><span class=\"preprocessor\">#undef DUNE_INCLUDING_IMPLEMENTATION</span></div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> </div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> </div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype, <span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"foldopen\" id=\"foldopen00370\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01187.html\"> 370</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a> {</div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> {</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> }</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> {</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> }</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> </div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n-<div class=\"foldopen\" id=\"foldopen00384\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01195.html\"> 384</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 0> {</div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01195.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 386</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 0;</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a>)</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> {</div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">isVertex</a>())</div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> {</div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordflow\">return</span> std::numeric_limits<int>::max();</div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> }</div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> }</div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">static</span> QuadratureRule<ctype, dim> rule(<span class=\"keyword\">const</span> GeometryType& t, <span class=\"keywordtype\">int</span> , <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a>)</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> {</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keywordflow\">if</span> (t.isVertex())</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> {</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keywordflow\">return</span> PointQuadratureRule<ctype>();</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> }</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> }</div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> </div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n-<div class=\"foldopen\" id=\"foldopen00407\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01199.html\"> 407</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 1> {</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01199.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 409</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 1;</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> {</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">isLine</a>())</div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> {</div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">switch</span> (qt) {</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> :</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">return</span> GaussQuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">QuadratureType::GaussJacobi_1_0</a> :</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"keywordflow\">return</span> Jacobi1QuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">QuadratureType::GaussJacobi_2_0</a> :</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keywordflow\">return</span> Jacobi2QuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">QuadratureType::GaussLobatto</a> :</div>\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"keywordflow\">return</span> GaussLobattoQuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> :</div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"keywordflow\">return</span> JacobiNQuadratureRule1D<ctype>::maxOrder();</div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">QuadratureType::GaussRadauLeft</a> :</div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">return</span> GaussRadauLeftQuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">QuadratureType::GaussRadauRight</a> :</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">return</span> GaussRadauRightQuadratureRule1D<ctype>::highest_order;</div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> default :</div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown QuadratureType"</span>);</div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> }</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> }</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> }</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> <span class=\"keyword\">static</span> QuadratureRule<ctype, dim> rule(<span class=\"keyword\">const</span> GeometryType& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> {</div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keywordflow\">if</span> (t.isLine())</div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> {</div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"keywordflow\">switch</span> (qt) {</div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> :</div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keywordflow\">return</span> GaussQuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">QuadratureType::GaussJacobi_1_0</a> :</div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keywordflow\">return</span> Jacobi1QuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">QuadratureType::GaussJacobi_2_0</a> :</div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> Jacobi2QuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">QuadratureType::GaussLobatto</a> :</div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> <span class=\"keywordflow\">return</span> GaussLobattoQuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> :</div>\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keywordflow\">return</span> JacobiNQuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">QuadratureType::GaussRadauLeft</a> :</div>\n-<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keywordflow\">return</span> GaussRadauLeftQuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keywordflow\">case</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">QuadratureType::GaussRadauRight</a> :</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> <span class=\"keywordflow\">return</span> GaussRadauRightQuadratureRule1D<ctype>(p);</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> default :</div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown QuadratureType"</span>);</div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> }</div>\n-<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> }</div>\n-<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> DUNE_THROW(Exception, <span class=\"stringliteral\">"Unknown GeometryType"</span>);</div>\n-<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> }</div>\n-<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> </div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n-<div class=\"foldopen\" id=\"foldopen00464\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01203.html\"> 464</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 2> {</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01203.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 466</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 2;</div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n-<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> {</div>\n-<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> <span class=\"keywordtype\">unsigned</span> order =</div>\n-<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n-<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n-<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> order = std::max</div>\n-<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(SimplexQuadratureRule<ctype,dim>::highest_order));</div>\n-<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> <span class=\"keywordflow\">return</span> order;</div>\n-<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> }</div>\n-<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n-<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()</div>\n-<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> && ( qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> || qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> )</div>\n-<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> && p <= SimplexQuadratureRule<ctype,dim>::highest_order)</div>\n-<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> {</div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keywordflow\">return</span> SimplexQuadratureRule<ctype,dim>(p);</div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> }</div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> }</div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> </div>\n-<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> <span class=\"keyword\">template</span><<span class=\"keyword\">typename</span> ctype></div>\n-<div class=\"foldopen\" id=\"foldopen00490\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01207.html\"> 490</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01187.html\">QuadratureRuleFactory</a><ctype, 3> {</div>\n-<div class=\"line\"><a id=\"l00491\" name=\"l00491\"></a><span class=\"lineno\"> 491</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01207.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 492</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> dim = 3;</div>\n-<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules</a><ctype, dim>;</div>\n-<div class=\"line\"><a id=\"l00494\" name=\"l00494\"></a><span class=\"lineno\"> 494</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> maxOrder(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> {</div>\n-<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> <span class=\"keywordtype\">unsigned</span> order =</div>\n-<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> TensorProductQuadratureRule<ctype,dim>::maxOrder(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), qt);</div>\n-<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n-<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> order = std::max</div>\n-<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(SimplexQuadratureRule<ctype,dim>::highest_order));</div>\n-<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>())</div>\n-<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> order = std::max</div>\n-<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span> (order, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(PrismQuadratureRule<ctype,dim>::highest_order));</div>\n-<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keywordflow\">return</span> order;</div>\n-<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> }</div>\n-<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, dim></a> rule(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& t, <span class=\"keywordtype\">int</span> p, <a class=\"code hl_enumeration\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt)</div>\n-<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> {</div>\n-<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> </div>\n-<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()</div>\n-<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> && ( qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a> || qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">QuadratureType::GaussJacobi_n_0</a> )</div>\n-<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> && p <= SimplexQuadratureRule<ctype,dim>::highest_order)</div>\n-<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> {</div>\n-<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> <span class=\"keywordflow\">return</span> SimplexQuadratureRule<ctype,dim>(p);</div>\n-<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> }</div>\n-<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keywordflow\">if</span> (t.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>()</div>\n-<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> && qt == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a></div>\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> && p <= PrismQuadratureRule<ctype,dim>::highest_order)</div>\n-<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> {</div>\n-<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> <span class=\"keywordflow\">return</span> PrismQuadratureRule<ctype,dim>(p);</div>\n-<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> }</div>\n-<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <span class=\"keywordflow\">return</span> TensorProductQuadratureRule<ctype,dim>(t.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), p, qt);</div>\n-<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"> 522</span> }</div>\n-<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> </div>\n-<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span><span class=\"preprocessor\">#ifndef DUNE_NO_EXTERN_QUADRATURERULES</span></div>\n-<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussLobattoQuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussQuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussRadauLeftQuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>GaussRadauRightQuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>Jacobi1QuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>Jacobi2QuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>JacobiNQuadratureRule<double, 1>;</div>\n-<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>PrismQuadratureRule<double, 3>;</div>\n-<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>SimplexQuadratureRule<double, 2>;</div>\n-<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01187.html#aed0e0cae9ad7414affe8b91b0a90bba0\"> 535</a></span> <span class=\"keyword\">extern</span> <span class=\"keyword\">template</span> <span class=\"keyword\">class </span>SimplexQuadratureRule<double, 3>;</div>\n-<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// !DUNE_NO_EXTERN_QUADRATURERULES</span></div>\n-<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> </div>\n-<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span>} <span class=\"comment\">// end namespace</span></div>\n-<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> </div>\n-<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_QUADRATURERULES_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">typeindex.hh</a></div><div class=\"ttdoc\">Helper classes to provide indices for geometrytypes for use in a vector.</div></div>\n-<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a> &order_, std::size_t codim_,</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> std::size_t subEntity_, std::size_t vertex_ = 0) :</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> order(&order_), codim(codim_), subEntity(subEntity_), vertex(vertex_)</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> { }</div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> </div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"foldopen\" id=\"foldopen00156\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\"> 156</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a> &<a class=\"code hl_function\" href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\">dereference</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keywordflow\">return</span> order->vertexOrder[order->refelem.subEntity(subEntity, codim,</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> vertex, dim)];</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n+</div>\n+<div class=\"foldopen\" id=\"foldopen00160\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\"> 160</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a> &<a class=\"code hl_function\" href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\">elementAt</a>(std::ptrdiff_t n)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">return</span> order->vertexOrder[order->refelem.subEntity(subEntity, codim,</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> vertex+n, dim)];</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> }</div>\n+</div>\n+<div class=\"foldopen\" id=\"foldopen00164\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a8995708c86363d7910d63d302c149c81\"> 164</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01127.html#a8995708c86363d7910d63d302c149c81\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> &other)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keywordflow\">return</span> order == other.order && codim == other.codim &&</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> subEntity == other.subEntity && vertex == other.vertex;</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\"> 168</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\">increment</a>() { ++vertex; }</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\"> 169</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\">decrement</a>() { --vertex; }</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\"> 170</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\">advance</a>(std::ptrdiff_t n) { vertex += n; }</div>\n+<div class=\"foldopen\" id=\"foldopen00171\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\"> 171</a></span> std::ptrdiff_t <a class=\"code hl_function\" href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\">distanceTo</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01127.html\">iterator</a> &other)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"comment\">// make sure we reference the same container</span></div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> assert(order == other.order && codim == other.codim &&</div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> subEntity == other.subEntity);</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">if</span>(vertex < other.vertex) <span class=\"keywordflow\">return</span> other.vertex - vertex;</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">return</span> -<span class=\"keyword\">static_cast<</span>std::ptrdiff_t<span class=\"keyword\">></span>(vertex - other.vertex);</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> </div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01123.html\">GeneralVertexOrder</a><dim, <a class=\"code hl_typedef\" href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Index</a>>;</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> </div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> </div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\"> 187</a></span> <a class=\"code hl_function\" href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\">iterator</a>() { }</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> </div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_GENERALVERTEXORDER_HH</span></div>\n+<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">Dune::QuadratureType::Enum</a></div><div class=\"ttdeci\">Enum</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:131</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a060454d83d08ebaa248db90cf3dff757\">Dune::QuadratureType::GaussJacobi_n_0</a></div><div class=\"ttdeci\">@ GaussJacobi_n_0</div><div class=\"ttdoc\">Gauss-Legendre rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:168</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a1a200ffa5fc9534695d7c97643361521\">Dune::QuadratureType::GaussJacobi_2_0</a></div><div class=\"ttdeci\">@ GaussJacobi_2_0</div><div class=\"ttdoc\">Gauss-Legendre rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:155</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a3b5155625943528fd35bcea2688bd096\">Dune::QuadratureType::GaussRadauRight</a></div><div class=\"ttdeci\">@ GaussRadauRight</div><div class=\"ttdoc\">Gauss-Radau rules including the right endpoint.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:193</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8ced03c4078f69e878ee4b0732ec0684\">Dune::QuadratureType::GaussJacobi_1_0</a></div><div class=\"ttdeci\">@ GaussJacobi_1_0</div><div class=\"ttdoc\">Gauss-Jacobi rules with .</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:148</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8e45d48c47bc465fc7127f37d5410e7e\">Dune::QuadratureType::GaussLobatto</a></div><div class=\"ttdeci\">@ GaussLobatto</div><div class=\"ttdoc\">Gauss-Lobatto rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:176</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4aaee32a29dcdc8e2be755714a8cbe1ef4\">Dune::QuadratureType::GaussRadauLeft</a></div><div class=\"ttdeci\">@ GaussRadauLeft</div><div class=\"ttdoc\">Gauss-Radau rules including the left endpoint.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:184</div></div>\n-<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">Dune::QuadratureType::GaussLegendre</a></div><div class=\"ttdeci\">@ GaussLegendre</div><div class=\"ttdoc\">Gauss-Legendre rules (default)</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:141</div></div>\n-<div class=\"ttc\" id=\"aa01163_html\"><div class=\"ttname\"><a href=\"a01163.html\">Dune::QuadraturePoint</a></div><div class=\"ttdoc\">Single evaluation point in a quadrature rule.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:66</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a043b38485b8304aa3c68cdc403d84b04\"><div class=\"ttname\"><a href=\"a01163.html#a043b38485b8304aa3c68cdc403d84b04\">Dune::QuadraturePoint::position</a></div><div class=\"ttdeci\">const Vector & position() const</div><div class=\"ttdoc\">return local coordinates of integration point i</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:82</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a0a9bc1947b8b5f92f2601198c4a1d50c\"><div class=\"ttname\"><a href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Dune::QuadraturePoint::Vector</a></div><div class=\"ttdeci\">Dune::FieldVector< ct, dim > Vector</div><div class=\"ttdoc\">Type used for the position of a quadrature point.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:75</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a2418b3ae04b2bddea9aedb7a02ae021c\"><div class=\"ttname\"><a href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\">Dune::QuadraturePoint::Field</a></div><div class=\"ttdeci\">ct Field</div><div class=\"ttdoc\">Number type used for coordinates and quadrature weights.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:72</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a3b9d46483531517c25a7702ef3d364bd\"><div class=\"ttname\"><a href=\"a01163.html#a3b9d46483531517c25a7702ef3d364bd\">Dune::QuadraturePoint::weight</a></div><div class=\"ttdeci\">const ct & weight() const</div><div class=\"ttdoc\">return weight associated with integration point i</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:88</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a7303f1ec5a28181ca5a6c9c245234085\"><div class=\"ttname\"><a href=\"a01163.html#a7303f1ec5a28181ca5a6c9c245234085\">Dune::QuadraturePoint::weight_</a></div><div class=\"ttdeci\">ct weight_</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:124</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_a9ad112b8ac0365cdb03be487268d1767\"><div class=\"ttname\"><a href=\"a01163.html#a9ad112b8ac0365cdb03be487268d1767\">Dune::QuadraturePoint::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdoc\">Dimension of the integration domain.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:69</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_adcb00b146846cd668bea887f139bd1df\"><div class=\"ttname\"><a href=\"a01163.html#adcb00b146846cd668bea887f139bd1df\">Dune::QuadraturePoint::QuadraturePoint</a></div><div class=\"ttdeci\">QuadraturePoint(const Vector &x, ct w)</div><div class=\"ttdoc\">set up quadrature of given order in d dimensions</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:78</div></div>\n-<div class=\"ttc\" id=\"aa01163_html_af12976bae5bb4258c131f4291861d05c\"><div class=\"ttname\"><a href=\"a01163.html#af12976bae5bb4258c131f4291861d05c\">Dune::QuadraturePoint::local</a></div><div class=\"ttdeci\">FieldVector< ct, dim > local</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:123</div></div>\n-<div class=\"ttc\" id=\"aa01171_html_ab8051c958c296e06f8cd30ddb8002cea\"><div class=\"ttname\"><a href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > >::type</a></div><div class=\"ttdeci\">Dune::FieldVector< ct, dim > type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:43</div></div>\n-<div class=\"ttc\" id=\"aa01175_html_a6337ec014d58dfb750abb27361a6d230\"><div class=\"ttname\"><a href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > >::type</a></div><div class=\"ttdeci\">ct type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:46</div></div>\n-<div class=\"ttc\" id=\"aa01179_html\"><div class=\"ttname\"><a href=\"a01179.html\">Dune::QuadratureOrderOutOfRange</a></div><div class=\"ttdoc\">Exception thrown if a desired QuadratureRule is not available, because the requested order is to high...</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:55</div></div>\n-<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a0bdd41add8c65028bd4d960c96ee1b3d\"><div class=\"ttname\"><a href=\"a01183.html#a0bdd41add8c65028bd4d960c96ee1b3d\">Dune::QuadratureRule::~QuadratureRule</a></div><div class=\"ttdeci\">virtual ~QuadratureRule()</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:241</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a307969aef9daf0bcfaefc37ea2931264\"><div class=\"ttname\"><a href=\"a01183.html#a307969aef9daf0bcfaefc37ea2931264\">Dune::QuadratureRule::type</a></div><div class=\"ttdeci\">virtual GeometryType type() const</div><div class=\"ttdoc\">return type of element</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:240</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a4ca10358838713a19d7749cc9f522d3b\"><div class=\"ttname\"><a href=\"a01183.html#a4ca10358838713a19d7749cc9f522d3b\">Dune::QuadratureRule::delivered_order</a></div><div class=\"ttdeci\">int delivered_order</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:249</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a4f9beb564cdd030692cccbb18774deea\"><div class=\"ttname\"><a href=\"a01183.html#a4f9beb564cdd030692cccbb18774deea\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule(GeometryType t, int order)</div><div class=\"ttdoc\">Constructor for a given geometry type and a given quadrature order.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:228</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a5df655a6cc6e2f9f8cfa3623efac8c0d\"><div class=\"ttname\"><a href=\"a01183.html#a5df655a6cc6e2f9f8cfa3623efac8c0d\">Dune::QuadratureRule::geometry_type</a></div><div class=\"ttdeci\">GeometryType geometry_type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:248</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a6a55ba72302762dd70f1f79b6f578745\"><div class=\"ttname\"><a href=\"a01183.html#a6a55ba72302762dd70f1f79b6f578745\">Dune::QuadratureRule::CoordType</a></div><div class=\"ttdeci\">ct CoordType</div><div class=\"ttdoc\">The type used for coordinates.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:234</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a6bb7d1e089d72975aad53cbf5033c05f\"><div class=\"ttname\"><a href=\"a01183.html#a6bb7d1e089d72975aad53cbf5033c05f\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule()</div><div class=\"ttdoc\">Default constructor.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:221</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_a9ac3d90d1617988b569493e0c3154d76\"><div class=\"ttname\"><a href=\"a01183.html#a9ac3d90d1617988b569493e0c3154d76\">Dune::QuadratureRule::order</a></div><div class=\"ttdeci\">virtual int order() const</div><div class=\"ttdoc\">return order</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:237</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_aaf6b6ed40149da8b729d9674d5e89f9c\"><div class=\"ttname\"><a href=\"a01183.html#aaf6b6ed40149da8b729d9674d5e89f9c\">Dune::QuadratureRule::QuadratureRule</a></div><div class=\"ttdeci\">QuadratureRule(GeometryType t)</div><div class=\"ttdoc\">Constructor for a given geometry type. Leaves the quadrature order invalid</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:225</div></div>\n-<div class=\"ttc\" id=\"aa01183_html_ac291cc15590f7c07dc3f3e1bd1ccf7be\"><div class=\"ttname\"><a href=\"a01183.html#ac291cc15590f7c07dc3f3e1bd1ccf7be\">Dune::QuadratureRule::iterator</a></div><div class=\"ttdeci\">std::vector< QuadraturePoint< ct, dim > >::const_iterator iterator</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:245</div></div>\n-<div class=\"ttc\" id=\"aa01187_html\"><div class=\"ttname\"><a href=\"a01187.html\">Dune::QuadratureRuleFactory</a></div><div class=\"ttdoc\">Factory class for creation of quadrature rules, depending on GeometryType, order and QuadratureType.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:370</div></div>\n-<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n-<div class=\"ttc\" id=\"aa01191_html_a55d090c68f5bff19964b3f79af52f68d\"><div class=\"ttname\"><a href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\">Dune::QuadratureRules::maxOrder</a></div><div class=\"ttdeci\">static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">maximum quadrature order for given geometry type and quadrature type</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:319</div></div>\n-<div class=\"ttc\" id=\"aa01191_html_aa879de5d32fbb139873c13c400063a0e\"><div class=\"ttname\"><a href=\"a01191.html#aa879de5d32fbb139873c13c400063a0e\">Dune::QuadratureRules::rule</a></div><div class=\"ttdeci\">static const QuadratureRule & rule(const GeometryType::BasicType t, int p, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">select the appropriate QuadratureRule for GeometryType t and order p</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:332</div></div>\n-<div class=\"ttc\" id=\"aa01191_html_ac69416a2180ed4043c457251b8b4eebe\"><div class=\"ttname\"><a href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\">Dune::QuadratureRules::rule</a></div><div class=\"ttdeci\">static const QuadratureRule & rule(const GeometryType &t, int p, QuadratureType::Enum qt=QuadratureType::GaussLegendre)</div><div class=\"ttdoc\">select the appropriate QuadratureRule for GeometryType t and order p</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:326</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a77eece3229d82b929dcf4cde0cb2a855\"><div class=\"ttname\"><a href=\"a00263.html#a77eece3229d82b929dcf4cde0cb2a855\">Dune::reduceOrder</a></div><div class=\"ttdeci\">void reduceOrder(const InIterator &inBegin, const InIterator &inEnd, OutIterator outIt)</div><div class=\"ttdoc\">Algorithm to reduce vertex order information.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:40</div></div>\n+<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n+<div class=\"ttc\" id=\"aa01123_html\"><div class=\"ttname\"><a href=\"a01123.html\">Dune::GeneralVertexOrder</a></div><div class=\"ttdoc\">Class providing information on the ordering of vertices.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:67</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_a37cdb00963877c2fbd6ef18d5efe3333\"><div class=\"ttname\"><a href=\"a01123.html#a37cdb00963877c2fbd6ef18d5efe3333\">Dune::GeneralVertexOrder::Index</a></div><div class=\"ttdeci\">Index_ Index</div><div class=\"ttdoc\">Type of indices.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:77</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_a52aa8e91a1272680078ef6a73d87d5b5\"><div class=\"ttname\"><a href=\"a01123.html#a52aa8e91a1272680078ef6a73d87d5b5\">Dune::GeneralVertexOrder::type</a></div><div class=\"ttdeci\">const GeometryType & type() const</div><div class=\"ttdoc\">get type of the entity's geometry</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:85</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_a76f768e33ef7af8fb63453a12012e02a\"><div class=\"ttname\"><a href=\"a01123.html#a76f768e33ef7af8fb63453a12012e02a\">Dune::GeneralVertexOrder::dimension</a></div><div class=\"ttdeci\">static const std::size_t dimension</div><div class=\"ttdoc\">export the dimension of the entity we provide information for</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:83</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_a9fd82b86554d2e4a771c40e7d9781c4e\"><div class=\"ttname\"><a href=\"a01123.html#a9fd82b86554d2e4a771c40e7d9781c4e\">Dune::GeneralVertexOrder::getReduced</a></div><div class=\"ttdeci\">void getReduced(std::size_t codim, std::size_t subEntity, std::vector< Index > &order) const</div><div class=\"ttdoc\">get a vector of reduced indices for some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:128</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_aa2f9423f99bc9fc1b66681b283adf5d5\"><div class=\"ttname\"><a href=\"a01123.html#aa2f9423f99bc9fc1b66681b283adf5d5\">Dune::GeneralVertexOrder::end</a></div><div class=\"ttdeci\">iterator end(std::size_t codim, std::size_t subEntity) const</div><div class=\"ttdoc\">get end iterator for the vertex indices of some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:115</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_aa8d5da76dbcd833b08918abf14f6d978\"><div class=\"ttname\"><a href=\"a01123.html#aa8d5da76dbcd833b08918abf14f6d978\">Dune::GeneralVertexOrder::GeneralVertexOrder</a></div><div class=\"ttdeci\">GeneralVertexOrder(const GeometryType &gt_, const InIterator &inBegin, const InIterator &inEnd)</div><div class=\"ttdoc\">construct a GeneralVertexOrder</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:97</div></div>\n+<div class=\"ttc\" id=\"aa01123_html_ae9961aea26ae53ab84ed8d56080c66e7\"><div class=\"ttname\"><a href=\"a01123.html#ae9961aea26ae53ab84ed8d56080c66e7\">Dune::GeneralVertexOrder::begin</a></div><div class=\"ttdeci\">iterator begin(std::size_t codim, std::size_t subEntity) const</div><div class=\"ttdoc\">get begin iterator for the vertex indices of some sub-entity</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:108</div></div>\n+<div class=\"ttc\" id=\"aa01127_html\"><div class=\"ttname\"><a href=\"a01127.html\">Dune::GeneralVertexOrder::iterator</a></div><div class=\"ttdoc\">Iterate over the vertex indices of some sub-entity.</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:144</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a03c5f3af410876f62021cfe607ed3538\"><div class=\"ttname\"><a href=\"a01127.html#a03c5f3af410876f62021cfe607ed3538\">Dune::GeneralVertexOrder::iterator::iterator</a></div><div class=\"ttdeci\">iterator()</div><div class=\"ttdoc\">public default constructor</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:187</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a1648ceeff8c1cd658368e6eefa036d71\"><div class=\"ttname\"><a href=\"a01127.html#a1648ceeff8c1cd658368e6eefa036d71\">Dune::GeneralVertexOrder::iterator::decrement</a></div><div class=\"ttdeci\">void decrement()</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:169</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a4390a963792da58ad1dacecbea3dca4a\"><div class=\"ttname\"><a href=\"a01127.html#a4390a963792da58ad1dacecbea3dca4a\">Dune::GeneralVertexOrder::iterator::advance</a></div><div class=\"ttdeci\">void advance(std::ptrdiff_t n)</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:170</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a4a2bc50c217c74894e6a898f07eedbf9\"><div class=\"ttname\"><a href=\"a01127.html#a4a2bc50c217c74894e6a898f07eedbf9\">Dune::GeneralVertexOrder::iterator::dereference</a></div><div class=\"ttdeci\">const Index & dereference() const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:156</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a5550e17d9e9df3c196912e9de402a0a5\"><div class=\"ttname\"><a href=\"a01127.html#a5550e17d9e9df3c196912e9de402a0a5\">Dune::GeneralVertexOrder::iterator::increment</a></div><div class=\"ttdeci\">void increment()</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:168</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_a8995708c86363d7910d63d302c149c81\"><div class=\"ttname\"><a href=\"a01127.html#a8995708c86363d7910d63d302c149c81\">Dune::GeneralVertexOrder::iterator::equals</a></div><div class=\"ttdeci\">bool equals(const iterator &other) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:164</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_ab0ec9f46a6c62bb40784605fc04d3ae9\"><div class=\"ttname\"><a href=\"a01127.html#ab0ec9f46a6c62bb40784605fc04d3ae9\">Dune::GeneralVertexOrder::iterator::distanceTo</a></div><div class=\"ttdeci\">std::ptrdiff_t distanceTo(const iterator &other) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:171</div></div>\n+<div class=\"ttc\" id=\"aa01127_html_ad422a25e54c101ff0990a7dc0d3dabdc\"><div class=\"ttname\"><a href=\"a01127.html#ad422a25e54c101ff0990a7dc0d3dabdc\">Dune::GeneralVertexOrder::iterator::elementAt</a></div><div class=\"ttdeci\">const Index & elementAt(std::ptrdiff_t n) const</div><div class=\"ttdef\"><b>Definition</b> generalvertexorder.hh:160</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a348e00bac645649b4694a3b03a87b7d8\"><div class=\"ttname\"><a href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">Dune::GeometryType::isPrism</a></div><div class=\"ttdeci\">constexpr bool isPrism() const</div><div class=\"ttdoc\">Return true if entity is a prism.</div><div class=\"ttdef\"><b>Definition</b> type.hh:309</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a3529c9ae0ad0d9fa97c413bfda66851f\"><div class=\"ttname\"><a href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">Dune::GeometryType::isVertex</a></div><div class=\"ttdeci\">constexpr bool isVertex() const</div><div class=\"ttdoc\">Return true if entity is a vertex.</div><div class=\"ttdef\"><b>Definition</b> type.hh:279</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">Dune::GeometryType::BasicType</a></div><div class=\"ttdeci\">BasicType</div><div class=\"ttdoc\">Each entity can be tagged by one of these basic types plus its space dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:120</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ab73476cf45a8608877ddba81c514d294\"><div class=\"ttname\"><a href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">Dune::GeometryType::isLine</a></div><div class=\"ttdeci\">constexpr bool isLine() const</div><div class=\"ttdoc\">Return true if entity is a line segment.</div><div class=\"ttdef\"><b>Definition</b> type.hh:284</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_af04ef531b52014e4e382722b54102163\"><div class=\"ttname\"><a href=\"a01367.html#af04ef531b52014e4e382722b54102163\">Dune::GeometryType::isSimplex</a></div><div class=\"ttdeci\">constexpr bool isSimplex() const</div><div class=\"ttdoc\">Return true if entity is a simplex of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:319</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,613 +1,216 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-quadraturerules.hh\n+generalvertexorder.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n 5\n-6#ifndef DUNE_GEOMETRY_QUADRATURERULES_HH\n-7#define DUNE_GEOMETRY_QUADRATURERULES_HH\n+6#ifndef DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n+7#define DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n 8\n 9#include <algorithm>\n-10#include <iostream>\n-11#include <limits>\n-12#include <mutex>\n-13#include <utility>\n-14#include <vector>\n-15\n-16#include <dune/common/fvector.hh>\n-17#include <dune/common/exceptions.hh>\n-18#include <dune/common/stdstreams.hh>\n-19#include <dune/common/stdthread.hh>\n-20#include <dune/common/visibility.hh>\n+10#include <cassert>\n+11#include <cstddef>\n+12#include <iterator>\n+13#include <vector>\n+14\n+15#include <dune/common/iteratorfacades.hh>\n+16\n+17#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+19\n+20namespace _\bD_\bu_\bn_\be {\n 21\n-22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n-24\n-31namespace _\bD_\bu_\bn_\be {\n-32 // forward declaration\n-33 template<typename ct, int dim>\n-34 class QuadraturePoint;\n-35}\n-36\n-37// class specialization of standard classes that allow to use structured\n-bindings on QuadraturePoint\n-38namespace _\bs_\bt_\bd {\n-39 template<typename ct, int dim>\n-_\b4_\b0 struct tuple_size<_\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> : public std::\n-integral_constant<std::size_t,2> {};\n-41\n-42 template<typename ct, int dim>\n-_\b4_\b3 struct tuple_element<0, _\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> { using _\bt_\by_\bp_\be = Dune::\n-FieldVector<ct, dim>; };\n-44\n-45 template<typename ct, int dim>\n-_\b4_\b6 struct tuple_element<1, _\bD_\bu_\bn_\be::QuadraturePoint<ct,dim>> { using _\bt_\by_\bp_\be = ct; };\n-47}\n-48\n-49namespace _\bD_\bu_\bn_\be {\n-50\n-_\b5_\b5 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be : public NotImplemented {};\n-56\n-65 template<typename ct, int dim>\n-_\b6_\b6 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt {\n-67 public:\n-_\b6_\b9 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n+39 template<class InIterator, class OutIterator>\n+_\b4_\b0 void _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(const InIterator& inBegin, const InIterator& inEnd,\n+41 OutIterator outIt)\n+42 {\n+43 for(InIterator inIt = inBegin; inIt != inEnd; ++inIt, ++outIt)\n+44 *outIt = std::count_if(inBegin, inEnd, [&](const auto& v)\n+45 {\n+46 return v < *inIt;\n+47 });\n+48 }\n+49\n+51\n+66 template<std::size_t dim, class Index_ = std::size_t>\n+_\b6_\b7 class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br {\n+68 typedef _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bd_\bo_\bu_\bb_\bl_\be_\b,_\b _\bd_\bi_\bm_\b> RefElems;\n+69 typedef typename _\bR_\be_\bf_\bE_\bl_\be_\bm_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt RefElem;\n 70\n-_\b7_\b2 typedef ct _\bF_\bi_\be_\bl_\bd;\n-73\n-_\b7_\b5 typedef Dune::FieldVector<ct,dim> _\bV_\be_\bc_\bt_\bo_\br;\n-76\n-_\b7_\b8 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt (const _\bV_\be_\bc_\bt_\bo_\br& x, ct w) : _\bl_\bo_\bc_\ba_\bl(x), _\bw_\be_\bi_\bg_\bh_\bt_\b_(w)\n-79 {}\n-80\n-_\b8_\b2 const _\bV_\be_\bc_\bt_\bo_\br& _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn () const\n-83 {\n-84 return _\bl_\bo_\bc_\ba_\bl;\n-85 }\n+71 RefElem refelem;\n+72 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt;\n+73 std::vector<Index_> vertexOrder;\n+74\n+75 public:\n+_\b7_\b7 typedef Index_ _\bI_\bn_\bd_\be_\bx;\n+78\n+80 class _\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n+81\n+_\b8_\b3 static const std::size_t _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dim;\n+_\b8_\b5 const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &_\bt_\by_\bp_\be() const { return gt; }\n 86\n-_\b8_\b8 const ct &_\bw_\be_\bi_\bg_\bh_\bt () const\n-89 {\n-90 return _\bw_\be_\bi_\bg_\bh_\bt_\b_;\n-91 }\n-92\n-111 template<std::size_t index, std::enable_if_t<(index<=1), int> = 0>\n-_\b1_\b1_\b2 std::tuple_element_t<index, QuadraturePoint<ct, dim>> get() const\n-113 {\n-114 if constexpr (index == 0) {\n-115 return local;\n-116 }\n-117 else {\n-118 return weight_;\n-119 }\n-120 }\n+88\n+96 template<class InIterator>\n+_\b9_\b7 _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt_, const InIterator &inBegin,\n+98 const InIterator &inEnd) :\n+99 refelem(RefElems::general(gt_)), gt(gt_),\n+100 vertexOrder(refelem.size(dim))\n+101 { _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(inBegin, inEnd, vertexOrder.begin()); }\n+102\n+104\n+_\b1_\b0_\b8 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\be_\bg_\bi_\bn(std::size_t codim, std::size_t subEntity) const\n+109 { return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, codim, subEntity); }\n+111\n+_\b1_\b1_\b5 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bn_\bd(std::size_t codim, std::size_t subEntity) const {\n+116 return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, codim, subEntity,\n+117 refelem.size(subEntity, codim, dim));\n+118 }\n+119\n 121\n-122 protected:\n-_\b1_\b2_\b3 FieldVector<ct, dim> local;\n-_\b1_\b2_\b4 ct weight_;\n-125 };\n-126\n-_\b1_\b3_\b0 namespace QuadratureType {\n-_\b1_\b3_\b1 enum Enum {\n-_\b1_\b4_\b1 GaussLegendre = 0,\n-142\n-_\b1_\b4_\b8 GaussJacobi_1_0 = 1,\n+_\b1_\b2_\b8 void _\bg_\be_\bt_\bR_\be_\bd_\bu_\bc_\be_\bd(std::size_t codim, std::size_t subEntity,\n+129 std::vector<Index>& order) const\n+130 {\n+131 order.resize(refelem.size(subEntity, codim, dim));\n+132 _\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br(_\bb_\be_\bg_\bi_\bn(codim, subEntity), _\be_\bn_\bd(codim, subEntity),\n+133 order.begin());\n+134 }\n+135 };\n+136\n+138\n+141 template<std::size_t dim, class Index_>\n+_\b1_\b4_\b2 class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br<dim, Index_>::_\bi_\bt_\be_\br_\ba_\bt_\bo_\br :\n+143 public Dune::RandomAccessIteratorFacade<iterator, const Index_>\n+144 {\n+145 const _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br *order;\n+146 std::size_t codim;\n+147 std::size_t subEntity;\n+148 std::size_t vertex;\n 149\n-_\b1_\b5_\b5 GaussJacobi_2_0 = 2,\n-156\n-_\b1_\b6_\b8 GaussJacobi_n_0 = 3,\n-169\n-_\b1_\b7_\b6 GaussLobatto = 4,\n-177\n-_\b1_\b8_\b4 GaussRadauLeft = 5,\n-185\n-_\b1_\b9_\b3 GaussRadauRight = 6,\n-194 size\n-_\b1_\b9_\b5 };\n-196 }\n-197\n-212 template<typename ct, int dim>\n-_\b2_\b1_\b3 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be : public std::vector<QuadraturePoint<ct,dim> >\n-214 {\n-215 public:\n-_\b2_\b2_\b1 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be() : delivered_order(-1) {}\n-222\n-223 protected:\n-_\b2_\b2_\b5 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be t) : geometry_type(t), delivered_order(-1) {}\n-226\n-_\b2_\b2_\b8 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be t, int order) : geometry_type(t),\n-delivered_order(order) {}\n-229 public:\n-_\b2_\b3_\b1 constexpr static int d = dim;\n-232\n-_\b2_\b3_\b4 typedef ct _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be;\n-235\n-_\b2_\b3_\b7 virtual int _\bo_\br_\bd_\be_\br () const { return delivered_order; }\n-238\n-_\b2_\b4_\b0 virtual _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const { return geometry_type; }\n-_\b2_\b4_\b1 virtual _\b~_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be(){}\n-242\n-_\b2_\b4_\b5 typedef typename std::vector<QuadraturePoint<ct,dim> >::const_iterator\n-_\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n-246\n-247 protected:\n-_\b2_\b4_\b8 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b__\bt_\by_\bp_\be;\n-_\b2_\b4_\b9 int _\bd_\be_\bl_\bi_\bv_\be_\br_\be_\bd_\b__\bo_\br_\bd_\be_\br;\n-250 };\n-251\n-252 // Forward declaration of the factory class,\n-253 // needed internally by the QuadratureRules container class.\n-254 template<typename ctype, int dim> class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by;\n-255\n-259 template<typename ctype, int dim>\n-_\b2_\b6_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs {\n-261\n-263 using _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be = _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b>;\n-264\n-265 // indexed by quadrature order\n-266 using QuadratureOrderVector = std::vector<std::pair<std::once_flag,\n-QuadratureRule> >;\n-267\n-268 // indexed by geometry type\n-269 using GeometryTypeVector = std::vector<std::pair<std::once_flag,\n-QuadratureOrderVector> >;\n-270\n-271 // indexed by quadrature type enum\n-272 using QuadratureCacheVector = std::vector<std::pair<std::once_flag,\n-GeometryTypeVector> >;\n-273\n-275 DUNE_EXPORT const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre) const\n-276 {\n-277 assert(t._\bd_\bi_\bm()==dim);\n-278\n-279 DUNE_ASSERT_CALL_ONCE();\n-280\n-281 static QuadratureCacheVector quadratureCache(QuadratureType::size);\n-282\n-283 auto& [ onceFlagQuadratureType, geometryTypes ] = quadratureCache[qt];\n-284 // initialize geometry types for this quadrature type once\n-285 std::call_once(onceFlagQuadratureType, [&types = geometryTypes]{\n-286 types = GeometryTypeVector(LocalGeometryTypeIndex::size(dim));\n-287 });\n-288\n-289 auto& [ onceFlagGeometryType, quadratureOrders ] = geometryTypes\n-[LocalGeometryTypeIndex::index(t)];\n-290 // initialize quadrature orders for this geometry type and quadrature type\n-once\n-291 std::call_once(onceFlagGeometryType, [&, &orders = quadratureOrders]{\n-292 // we only need one quadrature rule for points, not maxint\n-293 const auto numRules = dim == 0 ? 1 : _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:\n-_\bm_\ba_\bx_\bO_\br_\bd_\be_\br(t, qt)+1;\n-294 orders = QuadratureOrderVector(numRules);\n-295 });\n-296\n-297 // we only have one quadrature rule for points\n-298 auto& [ onceFlagQuadratureOrder, quadratureRule ] = quadratureOrders[dim ==\n-0 ? 0 : p];\n-299 // initialize quadrature rule once\n-300 std::call_once(onceFlagQuadratureOrder, [&, &rule = quadratureRule]{\n-301 rule = _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:_\br_\bu_\bl_\be(t, p, qt);\n-302 });\n-303\n-304 return quadratureRule;\n-305 }\n-306\n-308 DUNE_EXPORT static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs& instance()\n-309 {\n-310 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs instance;\n-311 return instance;\n-312 }\n-313\n-315 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs () = default;\n-316 public:\n-318 static unsigned\n-_\b3_\b1_\b9 _\bm_\ba_\bx_\bO_\br_\bd_\be_\br(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t,\n-320 _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n-321 {\n-322 return _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\bc_\bt_\by_\bp_\be_\b,_\bd_\bi_\bm_\b>_\b:_\b:_\bm_\ba_\bx_\bO_\br_\bd_\be_\br(t,qt);\n-323 }\n-324\n-_\b3_\b2_\b6 static const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _\br_\bu_\bl_\be(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n-327 {\n-328 return instance()._rule(t,p,qt);\n-329 }\n-330\n-_\b3_\b3_\b2 static const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be& _\br_\bu_\bl_\be(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt=QuadratureType::GaussLegendre)\n-333 {\n-334 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt(t,dim);\n-335 return instance()._rule(gt,p,qt);\n-336 }\n-337 };\n-338\n-339} // end namespace Dune\n-340\n-_\b3_\b4_\b1#define DUNE_INCLUDING_IMPLEMENTATION\n-342\n-343// 0d rules\n-344#include \"quadraturerules/pointquadrature.hh\"\n-345// 1d rules\n-346#include \"quadraturerules/gausslobattoquadrature.hh\"\n-347#include \"quadraturerules/gaussquadrature.hh\"\n-348#include \"quadraturerules/gaussradauleftquadrature.hh\"\n-349#include \"quadraturerules/gaussradaurightquadrature.hh\"\n-350#include \"quadraturerules/jacobi1quadrature.hh\"\n-351#include \"quadraturerules/jacobi2quadrature.hh\"\n-352#include \"quadraturerules/jacobiNquadrature.hh\"\n-353// 3d rules\n-354#include \"quadraturerules/prismquadrature.hh\"\n-355// general rules\n-356#include \"quadraturerules/simplexquadrature.hh\"\n-357#include \"quadraturerules/tensorproductquadrature.hh\"\n-358\n-359#undef DUNE_INCLUDING_IMPLEMENTATION\n-360\n-361namespace _\bD_\bu_\bn_\be {\n-362\n-369 template<typename ctype, int dim>\n-_\b3_\b7_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by {\n-371 private:\n-372 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n-373 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-374 {\n-375 return TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n-376 }\n-377 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-378 {\n-379 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n-380 }\n-381 };\n-382\n-383 template<typename ctype>\n-_\b3_\b8_\b4 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 0> {\n-385 private:\n-_\b3_\b8_\b6 constexpr static int dim = 0;\n-387 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n-388 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm)\n-389 {\n-390 if (t._\bi_\bs_\bV_\be_\br_\bt_\be_\bx())\n-391 {\n-392 return std::numeric_limits<int>::max();\n-393 }\n-394 DUNE_THROW(Exception, \"Unknown GeometryType\");\n-395 }\n-396 static QuadratureRule<ctype, dim> rule(const GeometryType& t, int ,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm)\n-397 {\n-398 if (t.isVertex())\n-399 {\n-400 return PointQuadratureRule<ctype>();\n-401 }\n-402 DUNE_THROW(Exception, \"Unknown GeometryType\");\n-403 }\n-404 };\n-405\n-406 template<typename ctype>\n-_\b4_\b0_\b7 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 1> {\n-408 private:\n-_\b4_\b0_\b9 constexpr static int dim = 1;\n-410 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n-411 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-412 {\n-413 if (t._\bi_\bs_\bL_\bi_\bn_\be())\n-414 {\n-415 switch (qt) {\n-416 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be :\n-417 return GaussQuadratureRule1D<ctype>::highest_order;\n-418 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 :\n-419 return Jacobi1QuadratureRule1D<ctype>::highest_order;\n-420 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 :\n-421 return Jacobi2QuadratureRule1D<ctype>::highest_order;\n-422 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo :\n-423 return GaussLobattoQuadratureRule1D<ctype>::highest_order;\n-424 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 :\n-425 return JacobiNQuadratureRule1D<ctype>::maxOrder();\n-426 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt :\n-427 return GaussRadauLeftQuadratureRule1D<ctype>::highest_order;\n-428 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt :\n-429 return GaussRadauRightQuadratureRule1D<ctype>::highest_order;\n-430 default :\n-431 DUNE_THROW(Exception, \"Unknown QuadratureType\");\n-432 }\n-433 }\n-434 DUNE_THROW(Exception, \"Unknown GeometryType\");\n-435 }\n-436 static QuadratureRule<ctype, dim> rule(const GeometryType& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-437 {\n-438 if (t.isLine())\n-439 {\n-440 switch (qt) {\n-441 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be :\n-442 return GaussQuadratureRule1D<ctype>(p);\n-443 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0 :\n-444 return Jacobi1QuadratureRule1D<ctype>(p);\n-445 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0 :\n-446 return Jacobi2QuadratureRule1D<ctype>(p);\n-447 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo :\n-448 return GaussLobattoQuadratureRule1D<ctype>(p);\n-449 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 :\n-450 return JacobiNQuadratureRule1D<ctype>(p);\n-451 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt :\n-452 return GaussRadauLeftQuadratureRule1D<ctype>(p);\n-453 case _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt :\n-454 return GaussRadauRightQuadratureRule1D<ctype>(p);\n-455 default :\n-456 DUNE_THROW(Exception, \"Unknown QuadratureType\");\n-457 }\n-458 }\n-459 DUNE_THROW(Exception, \"Unknown GeometryType\");\n-460 }\n-461 };\n-462\n-463 template<typename ctype>\n-_\b4_\b6_\b4 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 2> {\n-465 private:\n-_\b4_\b6_\b6 constexpr static int dim = 2;\n-467 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n-468 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-469 {\n-470 unsigned order =\n-471 TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n-472 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n-473 order = std::max\n-474 (order, static_cast<unsigned>(SimplexQuadratureRule<ctype,dim>::\n-highest_order));\n-475 return order;\n-476 }\n-477 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-478 {\n-479 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx()\n-480 && ( qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be || qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n-_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 )\n-481 && p <= SimplexQuadratureRule<ctype,dim>::highest_order)\n-482 {\n-483 return SimplexQuadratureRule<ctype,dim>(p);\n-484 }\n-485 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n-486 }\n-487 };\n-488\n-489 template<typename ctype>\n-_\b4_\b9_\b0 class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by<ctype, 3> {\n-491 private:\n-_\b4_\b9_\b2 constexpr static int dim = 3;\n-493 friend class _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs<ctype, dim>;\n-494 static unsigned maxOrder(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &t, _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-495 {\n-496 unsigned order =\n-497 TensorProductQuadratureRule<ctype,dim>::maxOrder(t._\bi_\bd(), qt);\n-498 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n-499 order = std::max\n-500 (order, static_cast<unsigned>(SimplexQuadratureRule<ctype,dim>::\n-highest_order));\n-501 if (t._\bi_\bs_\bP_\br_\bi_\bs_\bm())\n-502 order = std::max\n-503 (order, static_cast<unsigned>(PrismQuadratureRule<ctype,dim>::\n-highest_order));\n-504 return order;\n-505 }\n-506 static _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b> rule(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& t, int p,\n-_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm qt)\n-507 {\n-508\n-509 if (t._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx()\n-510 && ( qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be || qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:\n-_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0 )\n-511 && p <= SimplexQuadratureRule<ctype,dim>::highest_order)\n-512 {\n-513 return SimplexQuadratureRule<ctype,dim>(p);\n-514 }\n-515 if (t._\bi_\bs_\bP_\br_\bi_\bs_\bm()\n-516 && qt == _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be\n-517 && p <= PrismQuadratureRule<ctype,dim>::highest_order)\n-518 {\n-519 return PrismQuadratureRule<ctype,dim>(p);\n-520 }\n-521 return TensorProductQuadratureRule<ctype,dim>(t._\bi_\bd(), p, qt);\n-522 }\n-523 };\n-524\n-525#ifndef DUNE_NO_EXTERN_QUADRATURERULES\n-526 extern template class GaussLobattoQuadratureRule<double, 1>;\n-527 extern template class GaussQuadratureRule<double, 1>;\n-528 extern template class GaussRadauLeftQuadratureRule<double, 1>;\n-529 extern template class GaussRadauRightQuadratureRule<double, 1>;\n-530 extern template class Jacobi1QuadratureRule<double, 1>;\n-531 extern template class Jacobi2QuadratureRule<double, 1>;\n-532 extern template class JacobiNQuadratureRule<double, 1>;\n-533 extern template class PrismQuadratureRule<double, 3>;\n-534 extern template class SimplexQuadratureRule<double, 2>;\n-_\b5_\b3_\b5 extern template class SimplexQuadratureRule<double, 3>;\n-536#endif // !DUNE_NO_EXTERN_QUADRATURERULES\n-537\n-538} // end namespace\n-539\n-540#endif // DUNE_GEOMETRY_QUADRATURERULES_HH\n+150 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(const _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br &order_, std::size_t codim_,\n+151 std::size_t subEntity_, std::size_t vertex_ = 0) :\n+152 order(&order_), codim(codim_), subEntity(subEntity_), vertex(vertex_)\n+153 { }\n+154\n+155 public:\n+_\b1_\b5_\b6 const _\bI_\bn_\bd_\be_\bx &_\bd_\be_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be() const {\n+157 return order->vertexOrder[order->refelem.subEntity(subEntity, codim,\n+158 vertex, dim)];\n+159 }\n+_\b1_\b6_\b0 const _\bI_\bn_\bd_\be_\bx &_\be_\bl_\be_\bm_\be_\bn_\bt_\bA_\bt(std::ptrdiff_t n) const {\n+161 return order->vertexOrder[order->refelem.subEntity(subEntity, codim,\n+162 vertex+n, dim)];\n+163 }\n+_\b1_\b6_\b4 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bi_\bt_\be_\br_\ba_\bt_\bo_\br &other) const {\n+165 return order == other.order && codim == other.codim &&\n+166 subEntity == other.subEntity && vertex == other.vertex;\n+167 }\n+_\b1_\b6_\b8 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt() { ++vertex; }\n+_\b1_\b6_\b9 void _\bd_\be_\bc_\br_\be_\bm_\be_\bn_\bt() { --vertex; }\n+_\b1_\b7_\b0 void _\ba_\bd_\bv_\ba_\bn_\bc_\be(std::ptrdiff_t n) { vertex += n; }\n+_\b1_\b7_\b1 std::ptrdiff_t _\bd_\bi_\bs_\bt_\ba_\bn_\bc_\be_\bT_\bo(const _\bi_\bt_\be_\br_\ba_\bt_\bo_\br &other) const {\n+172 // make sure we reference the same container\n+173 assert(order == other.order && codim == other.codim &&\n+174 subEntity == other.subEntity);\n+175 if(vertex < other.vertex) return other.vertex - vertex;\n+176 else return -static_cast<std::ptrdiff_t>(vertex - other.vertex);\n+177 }\n+178\n+179 friend class _\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br<dim, _\bI_\bn_\bd_\be_\bx>;\n+180\n+182\n+_\b1_\b8_\b7 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br() { }\n+188 };\n+189} // namespace Dune\n+190\n+191#endif // DUNE_GEOMETRY_GENERALVERTEXORDER_HH\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh\n-Helper classes to provide indices for geometrytypes for use in a vector.\n-_\bs_\bt_\bd\n-STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bE_\bn_\bu_\bm\n-Enum\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:131\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\bn_\b__\b0\n-@ GaussJacobi_n_0\n-Gauss-Legendre rules with .\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:168\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b2_\b__\b0\n-@ GaussJacobi_2_0\n-Gauss-Legendre rules with .\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:155\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bR_\bi_\bg_\bh_\bt\n-@ GaussRadauRight\n-Gauss-Radau rules including the right endpoint.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:193\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bJ_\ba_\bc_\bo_\bb_\bi_\b__\b1_\b__\b0\n-@ GaussJacobi_1_0\n-Gauss-Jacobi rules with .\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:148\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\bo_\bb_\ba_\bt_\bt_\bo\n-@ GaussLobatto\n-Gauss-Lobatto rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:176\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bR_\ba_\bd_\ba_\bu_\bL_\be_\bf_\bt\n-@ GaussRadauLeft\n-Gauss-Radau rules including the left endpoint.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:184\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bG_\ba_\bu_\bs_\bs_\bL_\be_\bg_\be_\bn_\bd_\br_\be\n-@ GaussLegendre\n-Gauss-Legendre rules (default)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:141\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt\n-Single evaluation point in a quadrature rule.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:66\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n-const Vector & position() const\n-return local coordinates of integration point i\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:82\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bV_\be_\bc_\bt_\bo_\br\n-Dune::FieldVector< ct, dim > Vector\n-Type used for the position of a quadrature point.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:75\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bF_\bi_\be_\bl_\bd\n-ct Field\n-Number type used for coordinates and quadrature weights.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bw_\be_\bi_\bg_\bh_\bt\n-const ct & weight() const\n-return weight associated with integration point i\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:88\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bw_\be_\bi_\bg_\bh_\bt_\b_\n-ct weight_\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:124\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int dimension\n-Dimension of the integration domain.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:69\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt\n-QuadraturePoint(const Vector &x, ct w)\n-set up quadrature of given order in d dimensions\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:78\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n-FieldVector< ct, dim > local\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:123\n-_\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b0_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n-Dune::FieldVector< ct, dim > type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:43\n-_\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b__\be_\bl_\be_\bm_\be_\bn_\bt_\b<_\b _\b1_\b,_\b _\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bP_\bo_\bi_\bn_\bt_\b<_\b _\bc_\bt_\b,_\b _\bd_\bi_\bm_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n-ct type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:46\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bO_\br_\bd_\be_\br_\bO_\bu_\bt_\bO_\bf_\bR_\ba_\bn_\bg_\be\n-Exception thrown if a desired QuadratureRule is not available, because the\n-requested order is to high...\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:55\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-Abstract base class for quadrature rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\b~_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-virtual ~QuadratureRule()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:241\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bt_\by_\bp_\be\n-virtual GeometryType type() const\n-return type of element\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:240\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bd_\be_\bl_\bi_\bv_\be_\br_\be_\bd_\b__\bo_\br_\bd_\be_\br\n-int delivered_order\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:249\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-QuadratureRule(GeometryType t, int order)\n-Constructor for a given geometry type and a given quadrature order.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:228\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b__\bt_\by_\bp_\be\n-GeometryType geometry_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:248\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be\n-ct CoordType\n-The type used for coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:234\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-QuadratureRule()\n-Default constructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:221\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bo_\br_\bd_\be_\br\n-virtual int order() const\n-return order\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:237\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-QuadratureRule(GeometryType t)\n-Constructor for a given geometry type. Leaves the quadrature order invalid\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:225\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n-std::vector< QuadraturePoint< ct, dim > >::const_iterator iterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:245\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bF_\ba_\bc_\bt_\bo_\br_\by\n-Factory class for creation of quadrature rules, depending on GeometryType,\n-order and QuadratureType.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:370\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n-A container for all quadrature rules of dimension dim\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\bm_\ba_\bx_\bO_\br_\bd_\be_\br\n-static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum\n-qt=QuadratureType::GaussLegendre)\n-maximum quadrature order for given geometry type and quadrature type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:319\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\br_\bu_\bl_\be\n-static const QuadratureRule & rule(const GeometryType::BasicType t, int p,\n-QuadratureType::Enum qt=QuadratureType::GaussLegendre)\n-select the appropriate QuadratureRule for GeometryType t and order p\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:332\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b:_\b:_\br_\bu_\bl_\be\n-static const QuadratureRule & rule(const GeometryType &t, int p,\n-QuadratureType::Enum qt=QuadratureType::GaussLegendre)\n-select the appropriate QuadratureRule for GeometryType t and order p\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:326\n+_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bd_\bu_\bc_\be_\bO_\br_\bd_\be_\br\n+void reduceOrder(const InIterator &inBegin, const InIterator &inEnd,\n+OutIterator outIt)\n+Algorithm to reduce vertex order information.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:40\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+Class providing access to the singletons of the reference elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename Container::ReferenceElement ReferenceElement\n+The reference element type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br\n+Class providing information on the ordering of vertices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:67\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bI_\bn_\bd_\be_\bx\n+Index_ Index\n+Type of indices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:77\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bt_\by_\bp_\be\n+const GeometryType & type() const\n+get type of the entity's geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:85\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static const std::size_t dimension\n+export the dimension of the entity we provide information for\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:83\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bg_\be_\bt_\bR_\be_\bd_\bu_\bc_\be_\bd\n+void getReduced(std::size_t codim, std::size_t subEntity, std::vector< Index >\n+&order) const\n+get a vector of reduced indices for some sub-entity\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:128\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\be_\bn_\bd\n+iterator end(std::size_t codim, std::size_t subEntity) const\n+get end iterator for the vertex indices of some sub-entity\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:115\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br\n+GeneralVertexOrder(const GeometryType >_, const InIterator &inBegin, const\n+InIterator &inEnd)\n+construct a GeneralVertexOrder\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:97\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bb_\be_\bg_\bi_\bn\n+iterator begin(std::size_t codim, std::size_t subEntity) const\n+get begin iterator for the vertex indices of some sub-entity\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:108\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+Iterate over the vertex indices of some sub-entity.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:144\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+iterator()\n+public default constructor\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:187\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\bc_\br_\be_\bm_\be_\bn_\bt\n+void decrement()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:169\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\ba_\bd_\bv_\ba_\bn_\bc_\be\n+void advance(std::ptrdiff_t n)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:170\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+const Index & dereference() const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:156\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n+void increment()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:168\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n+bool equals(const iterator &other) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:164\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\bd_\bi_\bs_\bt_\ba_\bn_\bc_\be_\bT_\bo\n+std::ptrdiff_t distanceTo(const iterator &other) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:171\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\ba_\bl_\bV_\be_\br_\bt_\be_\bx_\bO_\br_\bd_\be_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:_\be_\bl_\be_\bm_\be_\bn_\bt_\bA_\bt\n+const Index & elementAt(std::ptrdiff_t n) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn generalvertexorder.hh:160\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm\n-constexpr bool isPrism() const\n-Return true if entity is a prism.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:309\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bV_\be_\br_\bt_\be_\bx\n-constexpr bool isVertex() const\n-Return true if entity is a vertex.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:279\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n-constexpr unsigned int dim() const\n-Return dimension of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be\n-BasicType\n-Each entity can be tagged by one of these basic types plus its space dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:120\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bL_\bi_\bn_\be\n-constexpr bool isLine() const\n-Return true if entity is a line segment.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:284\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n-constexpr unsigned int id() const\n-Return the topology id of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx\n-constexpr bool isSimplex() const\n-Return true if entity is a simplex of any dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:319\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00215.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00215.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: algorithms.hh File Reference</title>\n+<title>dune-geometry: referenceelementimplementation.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,40 +65,49 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">algorithms.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <algorithm></code><br />\n-<code>#include <cmath></code><br />\n+<div class=\"textblock\"><code>#include <cassert></code><br />\n+<code>#include <algorithm></code><br />\n <code>#include <limits></code><br />\n-<code>#include <optional></code><br />\n-<code>#include <type_traits></code><br />\n-<code>#include <dune/common/debugstream.hh></code><br />\n+<code>#include <tuple></code><br />\n+<code>#include <utility></code><br />\n+<code>#include <vector></code><br />\n+<code>#include <array></code><br />\n+<code>#include <bitset></code><br />\n <code>#include <dune/common/fmatrix.hh></code><br />\n-<code>#include <dune/common/ftraits.hh></code><br />\n <code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n+<code>#include <dune/common/hybridutilities.hh></code><br />\n+<code>#include <dune/common/typetraits.hh></code><br />\n+<code>#include <dune/common/iteratorrange.hh></code><br />\n+<code>#include <dune/common/math.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00206_source.html\">dune/geometry/referenceelement.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00215_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,25 +1,33 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-algorithms.hh File Reference\n+referenceelementimplementation.hh File Reference\n+#include <cassert>\n #include <algorithm>\n-#include <cmath>\n #include <limits>\n-#include <optional>\n-#include <type_traits>\n-#include <dune/common/debugstream.hh>\n+#include <tuple>\n+#include <utility>\n+#include <vector>\n+#include <array>\n+#include <bitset>\n #include <dune/common/fmatrix.hh>\n-#include <dune/common/ftraits.hh>\n #include <dune/common/fvector.hh>\n+#include <dune/common/hybridutilities.hh>\n+#include <dune/common/typetraits.hh>\n+#include <dune/common/iteratorrange.hh>\n+#include <dune/common/math.hh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n+\u00a0\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00215_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00215_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: algorithms.hh Source File</title>\n+<title>dune-geometry: referenceelementimplementation.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,124 +70,728 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">algorithms.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00215.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <algorithm></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <cmath></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <optional></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <type_traits></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/debugstream.hh></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/ftraits.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00170.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"keyword\">namespace </span>Impl {</div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> R = <span class=\"keywordtype\">double</span>></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"keyword\">struct </span>GaussNewtonOptions</div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span>{</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"keywordtype\">int</span> maxIt = 100;</div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <algorithm></span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <limits></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <tuple></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <utility></span></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <array></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <bitset></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/hybridutilities.hh></span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <dune/common/iteratorrange.hh></span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00206.html\">dune/geometry/referenceelement.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/affinegeometry.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> R absTol = []{ <span class=\"keyword\">using </span>std::sqrt; <span class=\"keywordflow\">return</span> sqrt(std::numeric_limits<R>::epsilon()); }();</div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span>{</div>\n <div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> </div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keywordtype\">int</span> maxInnerIt = 10;</div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">namespace </span>Geo</div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> {</div>\n <div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> R theta = 0.5;</div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span>};</div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> </div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> </div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">// Internal Forward Declarations</span></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// -----------------------------</span></div>\n <div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> </div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span><span class=\"keyword\">enum class</span> GaussNewtonErrorCode</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span>{</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> OK = 0, <span class=\"comment\">//< A solution is found</span></div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> JACOBIAN_NOT_INVERTIBLE, <span class=\"comment\">//< The Jacobian is not invertible at the current point</span></div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> STAGNATION, <span class=\"comment\">//< No reduction of the residul norm possible</span></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> TOLERANCE_NOT_REACHED <span class=\"comment\">//< The break tolerance for the resodual norm is not reached</span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span>};</div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keyword\">namespace </span>Impl</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> {</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">class </span>ReferenceElementContainer;</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> }</div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"keyword\">struct </span>ReferenceElements;</div>\n <div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n <div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> </div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>F, <span class=\"keyword\">class </span>DF, <span class=\"keyword\">class </span>Domain,</div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F, Domain>,</div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">class </span>R = <span class=\"keyword\">typename</span> Dune::FieldTraits<Domain>::real_type></div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span>GaussNewtonErrorCode gaussNewton (<span class=\"keyword\">const</span> F& f, <span class=\"keyword\">const</span> DF& df, Range y, Domain& x0,</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> GaussNewtonOptions<R> opts = {})</div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span>{</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> Domain x = x0;</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> Domain dx{};</div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> Range dy = f(x0) - y;</div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> R resNorm0 = dy.two_norm();</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> R resNorm = 0;</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> i = 0; i < opts.maxIt; ++i)</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> {</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> <span class=\"comment\">// Get descent direction dx: (J^T*J)dx = J^T*dy</span></div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">bool</span> invertible = FieldMatrixHelper<R>::xTRightInvA(df(x), dy, dx);</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"comment\">// break if jacobian is not invertible</span></div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordflow\">if</span> (!invertible)</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::JACOBIAN_NOT_INVERTIBLE;</div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"keyword\">namespace </span>Impl</div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> {</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> </div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> <span class=\"keyword\">using </span>Dune::Impl::isPrism;</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keyword\">using </span>Dune::Impl::isPyramid;</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keyword\">using </span>Dune::Impl::baseTopologyId;</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">using </span>Dune::Impl::prismConstruction;</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> <span class=\"keyword\">using </span>Dune::Impl::pyramidConstruction;</div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"keyword\">using </span>Dune::Impl::numTopologies;</div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim );</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> </div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> </div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> subTopologyId ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i );</div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> </div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"comment\">// subTopologyNumbering</span></div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> <span class=\"comment\">// --------------------</span></div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordtype\">void</span> subTopologyNumbering ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> subcodim,</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *beginOut, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *endOut );</div>\n <div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"comment\">// line-search procedure to update x with correction dx</span></div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> R alpha = 1;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> j = 0; j < opts.maxInnerIt; ++j) {</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> x = x0 - alpha * dx;</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> dy = f(x) - y;</div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> resNorm = dy.two_norm();</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> </div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keywordflow\">if</span> (resNorm < resNorm0)</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> alpha *= opts.theta;</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> }</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> </div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> <span class=\"comment\">// checkInside</span></div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> <span class=\"comment\">// -----------</span></div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> checkInside ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keyword\">const</span> FieldVector< ct, cdim > &x, ct tolerance, ct factor = ct( 1 ) )</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> {</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> assert( topologyId < numTopologies( dim ) );</div>\n <div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> </div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"comment\">// cannot reduce the residual</span></div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keywordflow\">if</span> (!(resNorm < resNorm0))</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::STAGNATION;</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> </div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> x0 = x;</div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> resNorm0 = resNorm;</div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"comment\">// break if tolerance is reached.</span></div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordflow\">if</span> (resNorm < opts.absTol)</div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::OK;</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> {</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">const</span> ct baseFactor = (isPrism( topologyId, dim ) ? factor : factor - x[ dim-1 ]);</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keywordflow\">if</span>( (x[ dim-1 ] > -tolerance) && (factor - x[ dim-1 ] > -tolerance) )</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"keywordflow\">return</span> checkInside< ct, cdim >( baseTopologyId( topologyId, dim ), dim-1, x, tolerance, baseFactor );</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> }</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n <div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> </div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"comment\">// tolerance could not be reached</span></div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> <span class=\"keywordflow\">if</span> (!(resNorm < opts.absTol))</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::TOLERANCE_NOT_REACHED;</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> <span class=\"keywordflow\">return</span> GaussNewtonErrorCode::OK;</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span>}</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> </div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span>} <span class=\"comment\">// end namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span>} <span class=\"comment\">// end namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> </div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH</span></div>\n-<div class=\"ttc\" id=\"aa00170_html\"><div class=\"ttname\"><a href=\"a00170.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> </div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> </div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// referenceCorners</span></div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"comment\">// ----------------</span></div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> referenceCorners ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, FieldVector< ct, cdim > *corners )</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> {</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> assert( topologyId < numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> </div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> {</div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nBaseCorners</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> = referenceCorners( baseTopologyId( topologyId, dim ), dim-1, corners );</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> assert( nBaseCorners == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( baseTopologyId( topologyId, dim ), dim-1, dim-1 ) );</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> std::copy( corners, corners + nBaseCorners, corners + nBaseCorners );</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < nBaseCorners; ++i )</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> corners[ i+nBaseCorners ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keywordflow\">return</span> 2*nBaseCorners;</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> }</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> {</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> corners[ nBaseCorners ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> corners[ nBaseCorners ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keywordflow\">return</span> nBaseCorners+1;</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> }</div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> }</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> {</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> *corners = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keywordflow\">return</span> 1;</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> }</div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> }</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> </div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"comment\">// referenceVolume</span></div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"comment\">// ---------------</span></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">long</span> referenceVolumeInverse ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim );</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> </div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct ></div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">inline</span> ct referenceVolume ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim )</div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> {</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"keywordflow\">return</span> ct( 1 ) / ct( referenceVolumeInverse( topologyId, dim ) );</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> }</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> </div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> </div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"comment\">// referenceOrigins</span></div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> <span class=\"comment\">// ----------------</span></div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> referenceOrigins ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim, FieldVector< ct, cdim > *origins )</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> {</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> assert( (dim >= 0) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> assert( topologyId < numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> assert( (codim >= 0) && (codim <= dim) );</div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keywordflow\">if</span>( codim > 0 )</div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> {</div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> {</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = (codim < dim ? referenceOrigins( baseId, dim-1, codim, origins ) : 0);</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceOrigins( baseId, dim-1, codim-1, origins+n );</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> {</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> origins[ n+m+i ] = origins[ n+i ];</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> origins[ n+m+i ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> }</div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> <span class=\"keywordflow\">return</span> n+2*m;</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> }</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> {</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceOrigins( baseId, dim-1, codim-1, origins );</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keywordflow\">if</span>( codim == dim )</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> {</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> origins[ m ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keywordflow\">return</span> m+1;</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> }</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordflow\">return</span> m+referenceOrigins( baseId, dim-1, codim, origins+m );</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> }</div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> }</div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"keywordflow\">return</span> 1;</div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> }</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> }</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> </div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> </div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <span class=\"comment\">// referenceEmbeddings</span></div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"comment\">// -------------------</span></div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> </div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim, <span class=\"keywordtype\">int</span> mydim ></div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> referenceEmbeddings ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim,</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> FieldVector< ct, cdim > *origins,</div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> FieldMatrix< ct, mydim, cdim > *jacobianTransposeds )</div>\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> {</div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> assert( (0 <= codim) && (codim <= dim) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> assert( (dim - codim <= mydim) && (mydim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> assert( topologyId < numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> </div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> <span class=\"keywordflow\">if</span>( (0 < codim) && (codim <= dim) )</div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> {</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> {</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = (codim < dim ? referenceEmbeddings( baseId, dim-1, codim, origins, jacobianTransposeds ) : 0);</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> jacobianTransposeds[ i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> </div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceEmbeddings( baseId, dim-1, codim-1, origins+n, jacobianTransposeds+n );</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> std::copy( origins+n, origins+n+m, origins+n+m );</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> std::copy( jacobianTransposeds+n, jacobianTransposeds+n+m, jacobianTransposeds+n+m );</div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < m; ++i )</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> origins[ n+m+i ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> </div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> <span class=\"keywordflow\">return</span> n+2*m;</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> }</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keywordflow\">else</span> <span class=\"comment\">// !isPrism</span></div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> {</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> m = referenceEmbeddings( baseId, dim-1, codim-1, origins, jacobianTransposeds );</div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keywordflow\">if</span>( codim == dim )</div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> origins[ m ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> jacobianTransposeds[ m ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"keywordflow\">return</span> m+1;</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> }</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( codim < dim )</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> {</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> n = referenceEmbeddings( baseId, dim-1, codim, origins+m, jacobianTransposeds+m );</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < n; ++i )</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> {</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < dim-1; ++k )</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> jacobianTransposeds[ m+i ][ dim-codim-1 ][ k ] = -origins[ m+i ][ k ];</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> jacobianTransposeds[ m+i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keywordflow\">return</span> m+n;</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> }</div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> }</div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> }</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> <span class=\"keywordflow\">else</span> <span class=\"keywordflow\">if</span>( codim == 0 )</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> {</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> jacobianTransposeds[ 0 ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> k = 0; k < dim; ++k )</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> jacobianTransposeds[ 0 ][ k ][ k ] = ct( 1 );</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"keywordflow\">return</span> 1;</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> }</div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> </div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> <span class=\"comment\">// this point should not be reached since all cases are handled before.</span></div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> std::abort();</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keywordflow\">return</span> 0;</div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> }</div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> </div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> </div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> </div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"comment\">// referenceIntegrationOuterNormals</span></div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"comment\">// --------------------------------</span></div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> </div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> referenceIntegrationOuterNormals ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim,</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">const</span> FieldVector< ct, cdim > *origins,</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> FieldVector< ct, cdim > *normals )</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> {</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> assert( (dim > 0) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> assert( topologyId < numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">if</span>( dim > 1 )</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> {</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseId = baseTopologyId( topologyId, dim );</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keywordflow\">if</span>( isPrism( topologyId, dim ) )</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> {</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numBaseFaces</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> = referenceIntegrationOuterNormals( baseId, dim-1, origins, normals );</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> </div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < 2; ++i )</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> {</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> normals[ numBaseFaces+i ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> normals[ numBaseFaces+i ][ dim-1 ] = ct( 2*<span class=\"keywordtype\">int</span>( i )-1 );</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">return</span> numBaseFaces+2;</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> }</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> {</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> normals[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> normals[ 0 ][ dim-1 ] = ct( -1 );</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numBaseFaces</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> = referenceIntegrationOuterNormals( baseId, dim-1, origins+1, normals+1 );</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 1; i <= numBaseFaces; ++i )</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> normals[ i ][ dim-1 ] = normals[ i ]*origins[ i ];</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> </div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> numBaseFaces+1;</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> {</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < 2; ++i )</div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> {</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> normals[ i ] = FieldVector< ct, cdim >( ct( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> normals[ i ][ 0 ] = ct( 2*<span class=\"keywordtype\">int</span>( i )-1 );</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> }</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> </div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keywordflow\">return</span> 2;</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> }</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> }</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> </div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ct, <span class=\"keywordtype\">int</span> cdim ></div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> referenceIntegrationOuterNormals ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim,</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> FieldVector< ct, cdim > *normals )</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> {</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> assert( (dim > 0) && (dim <= cdim) );</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> </div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> FieldVector< ct, cdim > *origins</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> = <span class=\"keyword\">new</span> FieldVector< ct, cdim >[ <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( topologyId, dim, 1 ) ];</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> referenceOrigins( topologyId, dim, 1, origins );</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numFaces</div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> = referenceIntegrationOuterNormals( topologyId, dim, origins, normals );</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> assert( numFaces == <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( topologyId, dim, 1 ) );</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <span class=\"keyword\">delete</span>[] origins;</div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keywordflow\">return</span> numFaces;</div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> }</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> </div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> } <span class=\"comment\">// namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> </div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"comment\">// ReferenceElement</span></div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"comment\">// ----------------</span></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> </div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype_, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">class </span>ReferenceElementImplementation</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> {</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> </div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> </div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keyword\">using </span>ctype = ctype_;</div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">using </span>CoordinateField = ctype;</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keyword\">using </span>Coordinate = Dune::FieldVector<ctype,dim>;</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> </div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> dimension = dim;</div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> </div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keyword\">typedef</span> ctype Volume;</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> </div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> </div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span>Impl::ReferenceElementContainer< ctype, dim >;</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> </div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keyword\">struct </span>SubEntityInfo;</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> </div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim > <span class=\"keyword\">struct </span>CreateGeometries;</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> </div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">struct </span>Codim</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> {</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">typedef</span> AffineGeometry< ctype, dim-codim, dim > Geometry;</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> };</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> </div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"comment\">// ReferenceElement cannot be copied.</span></div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> ReferenceElementImplementation ( <span class=\"keyword\">const</span> ReferenceElementImplementation& ) = <span class=\"keyword\">delete</span>;</div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> </div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"comment\">// ReferenceElementImplementation cannot be copied.</span></div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> ReferenceElementImplementation& operator= ( <span class=\"keyword\">const</span> ReferenceElementImplementation& ) = <span class=\"keyword\">delete</span>;</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> </div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> <span class=\"comment\">// ReferenceElementImplementation is default-constructible (required for storage in std::array)</span></div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> ReferenceElementImplementation () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> </div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> assert( (c >= 0) && (c <= dim) );</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordflow\">return</span> info_[ c ].size();</div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> }</div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> </div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].size( cc );</div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> }</div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> <span class=\"keywordtype\">int</span> subEntity ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> ii, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].number( ii, cc );</div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> }</div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> </div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keyword\">auto</span> subEntities ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].numbers( cc );</div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> }</div>\n+<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> </div>\n+<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> <span class=\"keyword\">const</span> GeometryType &type ( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> assert( (i >= 0) && (i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( c )) );</div>\n+<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> <span class=\"keywordflow\">return</span> info_[ c ][ i ].type();</div>\n+<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> }</div>\n+<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> </div>\n+<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keyword\">const</span> GeometryType &type ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> type( 0, 0 ); }</div>\n+<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> </div>\n+<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keyword\">const</span> Coordinate &position( <span class=\"keywordtype\">int</span> i, <span class=\"keywordtype\">int</span> c )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> assert( (c >= 0) && (c <= dim) );</div>\n+<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> <span class=\"keywordflow\">return</span> baryCenters_[ c ][ i ];</div>\n+<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> }</div>\n+<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> </div>\n+<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keywordtype\">bool</span> checkInside ( <span class=\"keyword\">const</span> Coordinate &local )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keyword\">const</span> ctype tolerance = ctype( 64 ) * std::numeric_limits< ctype >::epsilon();</div>\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> <span class=\"keywordflow\">return</span> Impl::template checkInside< ctype, dim >( type().<span class=\"keywordtype\">id</span>(), dim, local, tolerance );</div>\n+<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> }</div>\n+<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> </div>\n+<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n+<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> <span class=\"keyword\">typename</span> Codim< codim >::Geometry geometry ( <span class=\"keywordtype\">int</span> i )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> <span class=\"keywordflow\">return</span> std::get< codim >( geometries_ )[ i ];</div>\n+<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> }</div>\n+<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> </div>\n+<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> Volume volume ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keywordflow\">return</span> volume_;</div>\n+<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n+<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> </div>\n+<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> <span class=\"keyword\">const</span> Coordinate &integrationOuterNormal ( <span class=\"keywordtype\">int</span> face )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> assert( (face >= 0) && (face < <span class=\"keywordtype\">int</span>( integrationNormals_.size() )) );</div>\n+<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> <span class=\"keywordflow\">return</span> integrationNormals_[ face ];</div>\n+<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> }</div>\n+<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> </div>\n+<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> <span class=\"keywordtype\">void</span> initialize ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId )</div>\n+<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> {</div>\n+<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> assert( topologyId < Impl::numTopologies( dim ) );</div>\n+<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> </div>\n+<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> <span class=\"comment\">// set up subentities</span></div>\n+<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> codim = 0; codim <= dim; ++codim )</div>\n+<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> {</div>\n+<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> = Impl::size( topologyId, dim, codim );</div>\n+<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> info_[ codim ].resize( size );</div>\n+<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>; ++i )</div>\n+<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> info_[ codim ][ i ].initialize( topologyId, codim, i );</div>\n+<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> }</div>\n+<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> </div>\n+<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> <span class=\"comment\">// compute corners</span></div>\n+<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numVertices = <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( dim );</div>\n+<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> baryCenters_[ dim ].resize( numVertices );</div>\n+<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> Impl::referenceCorners( topologyId, dim, &(baryCenters_[ dim ][ 0 ]) );</div>\n+<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"> 588</span> </div>\n+<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"> 589</span> <span class=\"comment\">// compute barycenters</span></div>\n+<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> codim = 0; codim < dim; ++codim )</div>\n+<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> {</div>\n+<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> baryCenters_[ codim ].resize( <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>(codim) );</div>\n+<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( codim ); ++i )</div>\n+<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> {</div>\n+<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"> 595</span> baryCenters_[ codim ][ i ] = Coordinate( ctype( 0 ) );</div>\n+<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numCorners = <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( i, codim, dim );</div>\n+<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> j = 0; j < numCorners; ++j )</div>\n+<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> baryCenters_[ codim ][ i ] += baryCenters_[ dim ][ subEntity( i, codim, j, dim ) ];</div>\n+<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> baryCenters_[ codim ][ i ] *= ctype( 1 ) / ctype( numCorners );</div>\n+<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> }</div>\n+<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> }</div>\n+<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> </div>\n+<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"comment\">// compute reference element volume</span></div>\n+<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> volume_ = Impl::template referenceVolume< ctype >( topologyId, dim );</div>\n+<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> </div>\n+<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> <span class=\"comment\">// compute integration outer normals</span></div>\n+<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"keywordflow\">if</span>( dim > 0 )</div>\n+<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> {</div>\n+<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> integrationNormals_.resize( <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( 1 ) );</div>\n+<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> Impl::referenceIntegrationOuterNormals( topologyId, dim, &(integrationNormals_[ 0 ]) );</div>\n+<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> }</div>\n+<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> </div>\n+<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"comment\">// set up geometries</span></div>\n+<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> Hybrid::forEach( std::make_index_sequence< dim+1 >{}, [ & ]( <span class=\"keyword\">auto</span> i ){ CreateGeometries< i >::apply( *<span class=\"keyword\">this</span>, geometries_ ); } );</div>\n+<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> }</div>\n+<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> </div>\n+<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span>... codim ></div>\n+<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> <span class=\"keyword\">static</span> std::tuple< std::vector< typename Codim< codim >::Geometry >... ></div>\n+<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> makeGeometryTable ( std::integer_sequence< int, codim... > );</div>\n+<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> </div>\n+<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">decltype</span>( makeGeometryTable( std::make_integer_sequence< int, dim+1 >() ) ) GeometryTable;</div>\n+<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> </div>\n+<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> ctype volume_;</div>\n+<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> </div>\n+<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> std::vector< Coordinate > baryCenters_[ dim+1 ];</div>\n+<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> std::vector< Coordinate > integrationNormals_;</div>\n+<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> </div>\n+<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span> GeometryTable geometries_;</div>\n+<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> </div>\n+<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> std::vector< SubEntityInfo > info_[ dim+1 ];</div>\n+<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> };</div>\n+<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> </div>\n+<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"> 637</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span> <span class=\"keyword\">struct </span>ReferenceElementImplementation< ctype, dim >::SubEntityInfo</div>\n+<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span> {</div>\n+<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <span class=\"comment\">// Compute upper bound for the number of subsentities.</span></div>\n+<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> <span class=\"comment\">// If someone knows an explicit formal feel free to</span></div>\n+<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"comment\">// implement it here.</span></div>\n+<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t maxSubEntityCount()</div>\n+<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> {</div>\n+<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> std::size_t maxCount=0;</div>\n+<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> <span class=\"keywordflow\">for</span>(std::size_t codim=0; codim<=dim; ++codim)</div>\n+<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> maxCount = std::max(maxCount, binomial(std::size_t(dim),codim)*(1 << codim));</div>\n+<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">return</span> maxCount;</div>\n+<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> }</div>\n+<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> </div>\n+<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> <span class=\"keyword\">using </span>SubEntityFlags = std::bitset<maxSubEntityCount()>;</div>\n+<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> </div>\n+<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> <span class=\"keyword\">class </span>SubEntityRange</div>\n+<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> : <span class=\"keyword\">public</span> Dune::IteratorRange<const unsigned int*></div>\n+<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> {</div>\n+<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> <span class=\"keyword\">using </span>Base = <span class=\"keyword\">typename</span> Dune::IteratorRange<const unsigned int*>;</div>\n+<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> </div>\n+<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> </div>\n+<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> <span class=\"keyword\">using </span>iterator = Base::iterator;</div>\n+<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> <span class=\"keyword\">using </span>const_iterator = Base::const_iterator;</div>\n+<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> </div>\n+<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span> SubEntityRange(<span class=\"keyword\">const</span> iterator& begin, <span class=\"keyword\">const</span> iterator& end, <span class=\"keyword\">const</span> SubEntityFlags& contains) :</div>\n+<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> Base(begin, end),</div>\n+<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span> containsPtr_(&contains),</div>\n+<div class=\"line\"><a id=\"l00666\" name=\"l00666\"></a><span class=\"lineno\"> 666</span> size_(end-begin)</div>\n+<div class=\"line\"><a id=\"l00667\" name=\"l00667\"></a><span class=\"lineno\"> 667</span> {}</div>\n+<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"> 668</span> </div>\n+<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span> SubEntityRange() :</div>\n+<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> Base(),</div>\n+<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> containsPtr_(nullptr),</div>\n+<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> size_(0)</div>\n+<div class=\"line\"><a id=\"l00673\" name=\"l00673\"></a><span class=\"lineno\"> 673</span> {}</div>\n+<div class=\"line\"><a id=\"l00674\" name=\"l00674\"></a><span class=\"lineno\"> 674</span> </div>\n+<div class=\"line\"><a id=\"l00675\" name=\"l00675\"></a><span class=\"lineno\"> 675</span> std::size_t <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00676\" name=\"l00676\"></a><span class=\"lineno\"> 676</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00677\" name=\"l00677\"></a><span class=\"lineno\"> 677</span> <span class=\"keywordflow\">return</span> size_;</div>\n+<div class=\"line\"><a id=\"l00678\" name=\"l00678\"></a><span class=\"lineno\"> 678</span> }</div>\n+<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"> 679</span> </div>\n+<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span> <span class=\"keywordtype\">bool</span> contains(std::size_t i)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> <span class=\"keywordflow\">return</span> (*containsPtr_)[i];</div>\n+<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> }</div>\n+<div class=\"line\"><a id=\"l00684\" name=\"l00684\"></a><span class=\"lineno\"> 684</span> </div>\n+<div class=\"line\"><a id=\"l00685\" name=\"l00685\"></a><span class=\"lineno\"> 685</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00686\" name=\"l00686\"></a><span class=\"lineno\"> 686</span> <span class=\"keyword\">const</span> SubEntityFlags* containsPtr_;</div>\n+<div class=\"line\"><a id=\"l00687\" name=\"l00687\"></a><span class=\"lineno\"> 687</span> std::size_t size_;</div>\n+<div class=\"line\"><a id=\"l00688\" name=\"l00688\"></a><span class=\"lineno\"> 688</span> std::size_t offset_;</div>\n+<div class=\"line\"><a id=\"l00689\" name=\"l00689\"></a><span class=\"lineno\"> 689</span> };</div>\n+<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"> 690</span> </div>\n+<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span> <span class=\"keyword\">using </span>NumberRange = <span class=\"keyword\">typename</span> Dune::IteratorRange<const unsigned int*>;</div>\n+<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> </div>\n+<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> SubEntityInfo ()</div>\n+<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> : numbering_( nullptr )</div>\n+<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"> 695</span> {</div>\n+<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> std::fill( offset_.begin(), offset_.end(), 0 );</div>\n+<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> }</div>\n+<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> </div>\n+<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> SubEntityInfo ( <span class=\"keyword\">const</span> SubEntityInfo &other )</div>\n+<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"> 700</span> : offset_( other.offset_ ),</div>\n+<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> type_( other.type_ ),</div>\n+<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> containsSubentity_( other.containsSubentity_ )</div>\n+<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> {</div>\n+<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> numbering_ = allocate();</div>\n+<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"> 705</span> std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );</div>\n+<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> }</div>\n+<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"> 707</span> </div>\n+<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span> ~SubEntityInfo () { deallocate( numbering_ ); }</div>\n+<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n+<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span> <span class=\"keyword\">const</span> SubEntityInfo &operator= ( <span class=\"keyword\">const</span> SubEntityInfo &other )</div>\n+<div class=\"line\"><a id=\"l00711\" name=\"l00711\"></a><span class=\"lineno\"> 711</span> {</div>\n+<div class=\"line\"><a id=\"l00712\" name=\"l00712\"></a><span class=\"lineno\"> 712</span> type_ = other.type_;</div>\n+<div class=\"line\"><a id=\"l00713\" name=\"l00713\"></a><span class=\"lineno\"> 713</span> offset_ = other.offset_;</div>\n+<div class=\"line\"><a id=\"l00714\" name=\"l00714\"></a><span class=\"lineno\"> 714</span> </div>\n+<div class=\"line\"><a id=\"l00715\" name=\"l00715\"></a><span class=\"lineno\"> 715</span> deallocate( numbering_ );</div>\n+<div class=\"line\"><a id=\"l00716\" name=\"l00716\"></a><span class=\"lineno\"> 716</span> numbering_ = allocate();</div>\n+<div class=\"line\"><a id=\"l00717\" name=\"l00717\"></a><span class=\"lineno\"> 717</span> std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );</div>\n+<div class=\"line\"><a id=\"l00718\" name=\"l00718\"></a><span class=\"lineno\"> 718</span> </div>\n+<div class=\"line\"><a id=\"l00719\" name=\"l00719\"></a><span class=\"lineno\"> 719</span> containsSubentity_ = other.containsSubentity_;</div>\n+<div class=\"line\"><a id=\"l00720\" name=\"l00720\"></a><span class=\"lineno\"> 720</span> </div>\n+<div class=\"line\"><a id=\"l00721\" name=\"l00721\"></a><span class=\"lineno\"> 721</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">this</span>;</div>\n+<div class=\"line\"><a id=\"l00722\" name=\"l00722\"></a><span class=\"lineno\"> 722</span> }</div>\n+<div class=\"line\"><a id=\"l00723\" name=\"l00723\"></a><span class=\"lineno\"> 723</span> </div>\n+<div class=\"line\"><a id=\"l00724\" name=\"l00724\"></a><span class=\"lineno\"> 724</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> ( <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00725\" name=\"l00725\"></a><span class=\"lineno\"> 725</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00726\" name=\"l00726\"></a><span class=\"lineno\"> 726</span> assert( (cc >= 0) && (cc <= dim) );</div>\n+<div class=\"line\"><a id=\"l00727\" name=\"l00727\"></a><span class=\"lineno\"> 727</span> <span class=\"keywordflow\">return</span> (offset_[ cc+1 ] - offset_[ cc ]);</div>\n+<div class=\"line\"><a id=\"l00728\" name=\"l00728\"></a><span class=\"lineno\"> 728</span> }</div>\n+<div class=\"line\"><a id=\"l00729\" name=\"l00729\"></a><span class=\"lineno\"> 729</span> </div>\n+<div class=\"line\"><a id=\"l00730\" name=\"l00730\"></a><span class=\"lineno\"> 730</span> <span class=\"keywordtype\">int</span> number ( <span class=\"keywordtype\">int</span> ii, <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00731\" name=\"l00731\"></a><span class=\"lineno\"> 731</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00732\" name=\"l00732\"></a><span class=\"lineno\"> 732</span> assert( (ii >= 0) && (ii < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>( cc )) );</div>\n+<div class=\"line\"><a id=\"l00733\" name=\"l00733\"></a><span class=\"lineno\"> 733</span> <span class=\"keywordflow\">return</span> numbering_[ offset_[ cc ] + ii ];</div>\n+<div class=\"line\"><a id=\"l00734\" name=\"l00734\"></a><span class=\"lineno\"> 734</span> }</div>\n+<div class=\"line\"><a id=\"l00735\" name=\"l00735\"></a><span class=\"lineno\"> 735</span> </div>\n+<div class=\"line\"><a id=\"l00736\" name=\"l00736\"></a><span class=\"lineno\"> 736</span> <span class=\"keyword\">auto</span> numbers ( <span class=\"keywordtype\">int</span> cc )<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00737\" name=\"l00737\"></a><span class=\"lineno\"> 737</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00738\" name=\"l00738\"></a><span class=\"lineno\"> 738</span> <span class=\"keywordflow\">return</span> SubEntityRange( numbering_ + offset_[ cc ], numbering_ + offset_[ cc+1 ], containsSubentity_[cc]);</div>\n+<div class=\"line\"><a id=\"l00739\" name=\"l00739\"></a><span class=\"lineno\"> 739</span> }</div>\n+<div class=\"line\"><a id=\"l00740\" name=\"l00740\"></a><span class=\"lineno\"> 740</span> </div>\n+<div class=\"line\"><a id=\"l00741\" name=\"l00741\"></a><span class=\"lineno\"> 741</span> <span class=\"keyword\">const</span> GeometryType &type ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> type_; }</div>\n+<div class=\"line\"><a id=\"l00742\" name=\"l00742\"></a><span class=\"lineno\"> 742</span> </div>\n+<div class=\"line\"><a id=\"l00743\" name=\"l00743\"></a><span class=\"lineno\"> 743</span> <span class=\"keywordtype\">void</span> initialize ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> codim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i )</div>\n+<div class=\"line\"><a id=\"l00744\" name=\"l00744\"></a><span class=\"lineno\"> 744</span> {</div>\n+<div class=\"line\"><a id=\"l00745\" name=\"l00745\"></a><span class=\"lineno\"> 745</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> subId = Impl::subTopologyId( topologyId, dim, codim, i );</div>\n+<div class=\"line\"><a id=\"l00746\" name=\"l00746\"></a><span class=\"lineno\"> 746</span> type_ = GeometryType( subId, dim-codim );</div>\n+<div class=\"line\"><a id=\"l00747\" name=\"l00747\"></a><span class=\"lineno\"> 747</span> </div>\n+<div class=\"line\"><a id=\"l00748\" name=\"l00748\"></a><span class=\"lineno\"> 748</span> <span class=\"comment\">// compute offsets</span></div>\n+<div class=\"line\"><a id=\"l00749\" name=\"l00749\"></a><span class=\"lineno\"> 749</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = 0; cc <= codim; ++cc )</div>\n+<div class=\"line\"><a id=\"l00750\" name=\"l00750\"></a><span class=\"lineno\"> 750</span> offset_[ cc ] = 0;</div>\n+<div class=\"line\"><a id=\"l00751\" name=\"l00751\"></a><span class=\"lineno\"> 751</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = codim; cc <= dim; ++cc )</div>\n+<div class=\"line\"><a id=\"l00752\" name=\"l00752\"></a><span class=\"lineno\"> 752</span> offset_[ cc+1 ] = offset_[ cc ] + Impl::size( subId, dim-codim, cc-codim );</div>\n+<div class=\"line\"><a id=\"l00753\" name=\"l00753\"></a><span class=\"lineno\"> 753</span> </div>\n+<div class=\"line\"><a id=\"l00754\" name=\"l00754\"></a><span class=\"lineno\"> 754</span> <span class=\"comment\">// compute subnumbering</span></div>\n+<div class=\"line\"><a id=\"l00755\" name=\"l00755\"></a><span class=\"lineno\"> 755</span> deallocate( numbering_ );</div>\n+<div class=\"line\"><a id=\"l00756\" name=\"l00756\"></a><span class=\"lineno\"> 756</span> numbering_ = allocate();</div>\n+<div class=\"line\"><a id=\"l00757\" name=\"l00757\"></a><span class=\"lineno\"> 757</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> cc = codim; cc <= dim; ++cc )</div>\n+<div class=\"line\"><a id=\"l00758\" name=\"l00758\"></a><span class=\"lineno\"> 758</span> Impl::subTopologyNumbering( topologyId, dim, codim, i, cc-codim, numbering_+offset_[ cc ], numbering_+offset_[ cc+1 ] );</div>\n+<div class=\"line\"><a id=\"l00759\" name=\"l00759\"></a><span class=\"lineno\"> 759</span> </div>\n+<div class=\"line\"><a id=\"l00760\" name=\"l00760\"></a><span class=\"lineno\"> 760</span> <span class=\"comment\">// initialize containsSubentity lookup-table</span></div>\n+<div class=\"line\"><a id=\"l00761\" name=\"l00761\"></a><span class=\"lineno\"> 761</span> <span class=\"keywordflow\">for</span>(std::size_t cc=0; cc<= dim; ++cc)</div>\n+<div class=\"line\"><a id=\"l00762\" name=\"l00762\"></a><span class=\"lineno\"> 762</span> {</div>\n+<div class=\"line\"><a id=\"l00763\" name=\"l00763\"></a><span class=\"lineno\"> 763</span> containsSubentity_[cc].reset();</div>\n+<div class=\"line\"><a id=\"l00764\" name=\"l00764\"></a><span class=\"lineno\"> 764</span> <span class=\"keywordflow\">for</span>(std::size_t idx=0; idx<std::size_t(<a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>(cc)); ++idx)</div>\n+<div class=\"line\"><a id=\"l00765\" name=\"l00765\"></a><span class=\"lineno\"> 765</span> containsSubentity_[cc][number(idx,cc)] = <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00766\" name=\"l00766\"></a><span class=\"lineno\"> 766</span> }</div>\n+<div class=\"line\"><a id=\"l00767\" name=\"l00767\"></a><span class=\"lineno\"> 767</span> }</div>\n+<div class=\"line\"><a id=\"l00768\" name=\"l00768\"></a><span class=\"lineno\"> 768</span> </div>\n+<div class=\"line\"><a id=\"l00769\" name=\"l00769\"></a><span class=\"lineno\"> 769</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00770\" name=\"l00770\"></a><span class=\"lineno\"> 770</span> <span class=\"keywordtype\">int</span> codim ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> dim - type().dim(); }</div>\n+<div class=\"line\"><a id=\"l00771\" name=\"l00771\"></a><span class=\"lineno\"> 771</span> </div>\n+<div class=\"line\"><a id=\"l00772\" name=\"l00772\"></a><span class=\"lineno\"> 772</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *allocate () { <span class=\"keywordflow\">return</span> (capacity() != 0 ? <span class=\"keyword\">new</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span>[ capacity() ] : nullptr); }</div>\n+<div class=\"line\"><a id=\"l00773\" name=\"l00773\"></a><span class=\"lineno\"> 773</span> <span class=\"keywordtype\">void</span> deallocate ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *ptr ) { <span class=\"keyword\">delete</span>[] ptr; }</div>\n+<div class=\"line\"><a id=\"l00774\" name=\"l00774\"></a><span class=\"lineno\"> 774</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> capacity ()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> offset_[ dim+1 ]; }</div>\n+<div class=\"line\"><a id=\"l00775\" name=\"l00775\"></a><span class=\"lineno\"> 775</span> </div>\n+<div class=\"line\"><a id=\"l00776\" name=\"l00776\"></a><span class=\"lineno\"> 776</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00777\" name=\"l00777\"></a><span class=\"lineno\"> 777</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> *numbering_;</div>\n+<div class=\"line\"><a id=\"l00778\" name=\"l00778\"></a><span class=\"lineno\"> 778</span> std::array< unsigned int, dim+2 > offset_;</div>\n+<div class=\"line\"><a id=\"l00779\" name=\"l00779\"></a><span class=\"lineno\"> 779</span> GeometryType type_;</div>\n+<div class=\"line\"><a id=\"l00780\" name=\"l00780\"></a><span class=\"lineno\"> 780</span> std::array< SubEntityFlags, dim+1> containsSubentity_;</div>\n+<div class=\"line\"><a id=\"l00781\" name=\"l00781\"></a><span class=\"lineno\"> 781</span> };</div>\n+<div class=\"line\"><a id=\"l00782\" name=\"l00782\"></a><span class=\"lineno\"> 782</span> </div>\n+<div class=\"line\"><a id=\"l00783\" name=\"l00783\"></a><span class=\"lineno\"> 783</span> </div>\n+<div class=\"line\"><a id=\"l00784\" name=\"l00784\"></a><span class=\"lineno\"> 784</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> ctype, <span class=\"keywordtype\">int</span> dim ></div>\n+<div class=\"line\"><a id=\"l00785\" name=\"l00785\"></a><span class=\"lineno\"> 785</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> codim ></div>\n+<div class=\"line\"><a id=\"l00786\" name=\"l00786\"></a><span class=\"lineno\"> 786</span> <span class=\"keyword\">struct </span>ReferenceElementImplementation< ctype, dim >::CreateGeometries</div>\n+<div class=\"line\"><a id=\"l00787\" name=\"l00787\"></a><span class=\"lineno\"> 787</span> {</div>\n+<div class=\"line\"><a id=\"l00788\" name=\"l00788\"></a><span class=\"lineno\"> 788</span> <span class=\"keyword\">template</span>< <span class=\"keywordtype\">int</span> cc ></div>\n+<div class=\"line\"><a id=\"l00789\" name=\"l00789\"></a><span class=\"lineno\"> 789</span> <span class=\"keyword\">static</span> <span class=\"keyword\">typename</span> ReferenceElements< ctype, dim-cc >::ReferenceElement</div>\n+<div class=\"line\"><a id=\"l00790\" name=\"l00790\"></a><span class=\"lineno\"> 790</span> subRefElement( <span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement, <span class=\"keywordtype\">int</span> i, std::integral_constant< int, cc > )</div>\n+<div class=\"line\"><a id=\"l00791\" name=\"l00791\"></a><span class=\"lineno\"> 791</span> {</div>\n+<div class=\"line\"><a id=\"l00792\" name=\"l00792\"></a><span class=\"lineno\"> 792</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01099.html#ab04f646c67b6d08179bccc81a3a90e7a\">ReferenceElements< ctype, dim-cc >::general</a>( refElement.type( i, cc ) );</div>\n+<div class=\"line\"><a id=\"l00793\" name=\"l00793\"></a><span class=\"lineno\"> 793</span> }</div>\n+<div class=\"line\"><a id=\"l00794\" name=\"l00794\"></a><span class=\"lineno\"> 794</span> </div>\n+<div class=\"line\"><a id=\"l00795\" name=\"l00795\"></a><span class=\"lineno\"> 795</span> <span class=\"keyword\">static</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements< ctype, dim >::ReferenceElement</a></div>\n+<div class=\"line\"><a id=\"l00796\" name=\"l00796\"></a><span class=\"lineno\"> 796</span> subRefElement(<span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement,</div>\n+<div class=\"line\"><a id=\"l00797\" name=\"l00797\"></a><span class=\"lineno\"> 797</span> [[maybe_unused]] <span class=\"keywordtype\">int</span> i, std::integral_constant<int, 0>)</div>\n+<div class=\"line\"><a id=\"l00798\" name=\"l00798\"></a><span class=\"lineno\"> 798</span> {</div>\n+<div class=\"line\"><a id=\"l00799\" name=\"l00799\"></a><span class=\"lineno\"> 799</span> <span class=\"keywordflow\">return</span> refElement;</div>\n+<div class=\"line\"><a id=\"l00800\" name=\"l00800\"></a><span class=\"lineno\"> 800</span> }</div>\n+<div class=\"line\"><a id=\"l00801\" name=\"l00801\"></a><span class=\"lineno\"> 801</span> </div>\n+<div class=\"line\"><a id=\"l00802\" name=\"l00802\"></a><span class=\"lineno\"> 802</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> apply ( <span class=\"keyword\">const</span> ReferenceElementImplementation< ctype, dim > &refElement, GeometryTable &geometries )</div>\n+<div class=\"line\"><a id=\"l00803\" name=\"l00803\"></a><span class=\"lineno\"> 803</span> {</div>\n+<div class=\"line\"><a id=\"l00804\" name=\"l00804\"></a><span class=\"lineno\"> 804</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a> = refElement.size( codim );</div>\n+<div class=\"line\"><a id=\"l00805\" name=\"l00805\"></a><span class=\"lineno\"> 805</span> std::vector< FieldVector< ctype, dim > > origins( size );</div>\n+<div class=\"line\"><a id=\"l00806\" name=\"l00806\"></a><span class=\"lineno\"> 806</span> std::vector< FieldMatrix< ctype, dim - codim, dim > > jacobianTransposeds( size );</div>\n+<div class=\"line\"><a id=\"l00807\" name=\"l00807\"></a><span class=\"lineno\"> 807</span> Impl::referenceEmbeddings( refElement.type().id(), dim, codim, &(origins[ 0 ]), &(jacobianTransposeds[ 0 ]) );</div>\n+<div class=\"line\"><a id=\"l00808\" name=\"l00808\"></a><span class=\"lineno\"> 808</span> </div>\n+<div class=\"line\"><a id=\"l00809\" name=\"l00809\"></a><span class=\"lineno\"> 809</span> std::get< codim >( geometries ).reserve( size );</div>\n+<div class=\"line\"><a id=\"l00810\" name=\"l00810\"></a><span class=\"lineno\"> 810</span> <span class=\"keywordflow\">for</span>( <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_enumvalue\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">size</a>; ++i )</div>\n+<div class=\"line\"><a id=\"l00811\" name=\"l00811\"></a><span class=\"lineno\"> 811</span> {</div>\n+<div class=\"line\"><a id=\"l00812\" name=\"l00812\"></a><span class=\"lineno\"> 812</span> <span class=\"keyword\">typename</span> Codim< codim >::Geometry geometry( subRefElement( refElement, i, std::integral_constant< int, codim >() ), origins[ i ], jacobianTransposeds[ i ] );</div>\n+<div class=\"line\"><a id=\"l00813\" name=\"l00813\"></a><span class=\"lineno\"> 813</span> std::get< codim >( geometries ).push_back( geometry );</div>\n+<div class=\"line\"><a id=\"l00814\" name=\"l00814\"></a><span class=\"lineno\"> 814</span> }</div>\n+<div class=\"line\"><a id=\"l00815\" name=\"l00815\"></a><span class=\"lineno\"> 815</span> }</div>\n+<div class=\"line\"><a id=\"l00816\" name=\"l00816\"></a><span class=\"lineno\"> 816</span> };</div>\n+<div class=\"line\"><a id=\"l00817\" name=\"l00817\"></a><span class=\"lineno\"> 817</span> </div>\n+<div class=\"line\"><a id=\"l00818\" name=\"l00818\"></a><span class=\"lineno\"> 818</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00819\" name=\"l00819\"></a><span class=\"lineno\"> 819</span> </div>\n+<div class=\"line\"><a id=\"l00820\" name=\"l00820\"></a><span class=\"lineno\"> 820</span> } <span class=\"comment\">// namespace Geo</span></div>\n+<div class=\"line\"><a id=\"l00821\" name=\"l00821\"></a><span class=\"lineno\"> 821</span> </div>\n+<div class=\"line\"><a id=\"l00822\" name=\"l00822\"></a><span class=\"lineno\"> 822</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00823\" name=\"l00823\"></a><span class=\"lineno\"> 823</span> </div>\n+<div class=\"line\"><a id=\"l00824\" name=\"l00824\"></a><span class=\"lineno\"> 824</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH</span></div>\n+<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n+<div class=\"ttc\" id=\"aa00206_html\"><div class=\"ttname\"><a href=\"a00206.html\">referenceelement.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n+<div class=\"ttc\" id=\"aa00266_html_a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\"><div class=\"ttname\"><a href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4a8deef24dca36adbc1426045c4567fbac\">Dune::QuadratureType::size</a></div><div class=\"ttdeci\">@ size</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:194</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_ab04f646c67b6d08179bccc81a3a90e7a\"><div class=\"ttname\"><a href=\"a01099.html#ab04f646c67b6d08179bccc81a3a90e7a\">Dune::Geo::ReferenceElements::general</a></div><div class=\"ttdeci\">static const ReferenceElement & general(const GeometryType &type)</div><div class=\"ttdoc\">get general reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:156</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,121 +1,767 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n-algorithms.hh\n+referenceelementimplementation.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n-6#define DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n+5#ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n+6#define DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n 7\n-8#include <algorithm>\n-9#include <cmath>\n-10#include <limits>\n-11#include <optional>\n-12#include <type_traits>\n-13\n-14#include <dune/common/debugstream.hh>\n-15#include <dune/common/fmatrix.hh>\n-16#include <dune/common/ftraits.hh>\n-17#include <dune/common/fvector.hh>\n-18#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n-19\n-20namespace _\bD_\bu_\bn_\be {\n-21namespace Impl {\n-22\n-23template <class R = double>\n-24struct GaussNewtonOptions\n-25{\n-27 int maxIt = 100;\n+8#include <cassert>\n+9\n+10#include <algorithm>\n+11#include <limits>\n+12#include <tuple>\n+13#include <utility>\n+14#include <vector>\n+15#include <array>\n+16#include <bitset>\n+17\n+18#include <dune/common/fmatrix.hh>\n+19#include <dune/common/fvector.hh>\n+20#include <dune/common/hybridutilities.hh>\n+21#include <dune/common/typetraits.hh>\n+22#include <dune/common/iteratorrange.hh>\n+23#include <dune/common/math.hh>\n+24\n+25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh>\n+26#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+27#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n 28\n-30 R absTol = []{ using std::sqrt; return sqrt(std::numeric_limits<R>::epsilon\n-()); }();\n+29namespace _\bD_\bu_\bn_\be\n+30{\n 31\n-33 int maxInnerIt = 10;\n+32 namespace Geo\n+33 {\n 34\n-36 R theta = 0.5;\n-37};\n-38\n+35#ifndef DOXYGEN\n+36\n+37 // Internal Forward Declarations\n+38 // -----------------------------\n 39\n-41enum class GaussNewtonErrorCode\n-42{\n-43 OK = 0, //< A solution is found\n-44 JACOBIAN_NOT_INVERTIBLE, //< The Jacobian is not invertible at the current\n-point\n-45 STAGNATION, //< No reduction of the residul norm possible\n-46 TOLERANCE_NOT_REACHED //< The break tolerance for the resodual norm is not\n-reached\n-47};\n+40 namespace Impl\n+41 {\n+42 template< class ctype, int dim >\n+43 class ReferenceElementContainer;\n+44 }\n+45\n+46 template< class ctype, int dim >\n+47 struct ReferenceElements;\n 48\n 49\n-62template <class F, class DF, class Domain,\n-63 class Range = std::invoke_result_t<F, Domain>,\n-64 class R = typename Dune::FieldTraits<Domain>::real_type>\n-65GaussNewtonErrorCode gaussNewton (const F& f, const DF& df, Range y, Domain&\n-x0,\n-66 GaussNewtonOptions<R> opts = {})\n-67{\n-68 Domain x = x0;\n-69 Domain dx{};\n-70 Range dy = f(x0) - y;\n-71 R resNorm0 = dy.two_norm();\n-72 R resNorm = 0;\n-73\n-74 for (int i = 0; i < opts.maxIt; ++i)\n-75 {\n-76 // Get descent direction dx: (J^T*J)dx = J^T*dy\n-77 const bool invertible = FieldMatrixHelper<R>::xTRightInvA(df(x), dy, dx);\n-78\n-79 // break if jacobian is not invertible\n-80 if (!invertible)\n-81 return GaussNewtonErrorCode::JACOBIAN_NOT_INVERTIBLE;\n+50\n+51 namespace Impl\n+52 {\n+53\n+54 using Dune::Impl::isPrism;\n+55 using Dune::Impl::isPyramid;\n+56 using Dune::Impl::baseTopologyId;\n+57 using Dune::Impl::prismConstruction;\n+58 using Dune::Impl::pyramidConstruction;\n+59 using Dune::Impl::numTopologies;\n+60\n+62 unsigned int _\bs_\bi_\bz_\be ( unsigned int topologyId, int dim, int codim );\n+63\n+64\n+65\n+73 unsigned int subTopologyId ( unsigned int topologyId, int dim, int codim,\n+unsigned int i );\n+74\n+75\n+76\n+77 // subTopologyNumbering\n+78 // --------------------\n+79\n+80 void subTopologyNumbering ( unsigned int topologyId, int dim, int codim,\n+unsigned int i, int subcodim,\n+81 unsigned int *beginOut, unsigned int *endOut );\n 82\n-83 // line-search procedure to update x with correction dx\n-84 R alpha = 1;\n-85 for (int j = 0; j < opts.maxInnerIt; ++j) {\n-86 x = x0 - alpha * dx;\n-87 dy = f(x) - y;\n-88 resNorm = dy.two_norm();\n-89\n-90 if (resNorm < resNorm0)\n-91 break;\n-92\n-93 alpha *= opts.theta;\n-94 }\n+83\n+84\n+85\n+86 // checkInside\n+87 // -----------\n+88\n+89 template< class ct, int cdim >\n+90 inline bool\n+91 checkInside ( unsigned int topologyId, int dim, const FieldVector< ct, cdim\n+> &x, ct tolerance, ct factor = ct( 1 ) )\n+92 {\n+93 assert( (dim >= 0) && (dim <= cdim) );\n+94 assert( topologyId < numTopologies( dim ) );\n 95\n-96 // cannot reduce the residual\n-97 if (!(resNorm < resNorm0))\n-98 return GaussNewtonErrorCode::STAGNATION;\n-99\n-100 x0 = x;\n-101 resNorm0 = resNorm;\n-102\n-103 // break if tolerance is reached.\n-104 if (resNorm < opts.absTol)\n-105 return GaussNewtonErrorCode::OK;\n+96 if( dim > 0 )\n+97 {\n+98 const ct baseFactor = (isPrism( topologyId, dim ) ? factor : factor - x\n+[ dim-1 ]);\n+99 if( (x[ dim-1 ] > -tolerance) && (factor - x[ dim-1 ] > -tolerance) )\n+100 return checkInside< ct, cdim >( baseTopologyId( topologyId, dim ), dim-1,\n+x, tolerance, baseFactor );\n+101 else\n+102 return false;\n+103 }\n+104 else\n+105 return true;\n 106 }\n 107\n-108 // tolerance could not be reached\n-109 if (!(resNorm < opts.absTol))\n-110 return GaussNewtonErrorCode::TOLERANCE_NOT_REACHED;\n-111\n-112 return GaussNewtonErrorCode::OK;\n-113}\n-114\n-115} // end namespace Impl\n-116} // end namespace Dune\n-117\n-118#endif // DUNE_GEOMETRY_UTILITY_ALGORITHMS_HH\n+108\n+109\n+110 // referenceCorners\n+111 // ----------------\n+112\n+113 template< class ct, int cdim >\n+114 inline unsigned int\n+115 referenceCorners ( unsigned int topologyId, int dim, FieldVector< ct, cdim\n+> *corners )\n+116 {\n+117 assert( (dim >= 0) && (dim <= cdim) );\n+118 assert( topologyId < numTopologies( dim ) );\n+119\n+120 if( dim > 0 )\n+121 {\n+122 const unsigned int nBaseCorners\n+123 = referenceCorners( baseTopologyId( topologyId, dim ), dim-1, corners );\n+124 assert( nBaseCorners == _\bs_\bi_\bz_\be( baseTopologyId( topologyId, dim ), dim-1,\n+dim-1 ) );\n+125 if( isPrism( topologyId, dim ) )\n+126 {\n+127 std::copy( corners, corners + nBaseCorners, corners + nBaseCorners );\n+128 for( unsigned int i = 0; i < nBaseCorners; ++i )\n+129 corners[ i+nBaseCorners ][ dim-1 ] = ct( 1 );\n+130 return 2*nBaseCorners;\n+131 }\n+132 else\n+133 {\n+134 corners[ nBaseCorners ] = FieldVector< ct, cdim >( ct( 0 ) );\n+135 corners[ nBaseCorners ][ dim-1 ] = ct( 1 );\n+136 return nBaseCorners+1;\n+137 }\n+138 }\n+139 else\n+140 {\n+141 *corners = FieldVector< ct, cdim >( ct( 0 ) );\n+142 return 1;\n+143 }\n+144 }\n+145\n+146\n+147\n+148 // referenceVolume\n+149 // ---------------\n+150\n+151 unsigned long referenceVolumeInverse ( unsigned int topologyId, int dim );\n+152\n+153 template< class ct >\n+154 inline ct referenceVolume ( unsigned int topologyId, int dim )\n+155 {\n+156 return ct( 1 ) / ct( referenceVolumeInverse( topologyId, dim ) );\n+157 }\n+158\n+159\n+160\n+161 // referenceOrigins\n+162 // ----------------\n+163\n+164 template< class ct, int cdim >\n+165 inline unsigned int\n+166 referenceOrigins ( unsigned int topologyId, int dim, int codim,\n+FieldVector< ct, cdim > *origins )\n+167 {\n+168 assert( (dim >= 0) && (dim <= cdim) );\n+169 assert( topologyId < numTopologies( dim ) );\n+170 assert( (codim >= 0) && (codim <= dim) );\n+171\n+172 if( codim > 0 )\n+173 {\n+174 const unsigned int baseId = baseTopologyId( topologyId, dim );\n+175 if( isPrism( topologyId, dim ) )\n+176 {\n+177 const unsigned int n = (codim < dim ? referenceOrigins( baseId, dim-1,\n+codim, origins ) : 0);\n+178 const unsigned int m = referenceOrigins( baseId, dim-1, codim-1, origins+n\n+);\n+179 for( unsigned int i = 0; i < m; ++i )\n+180 {\n+181 origins[ n+m+i ] = origins[ n+i ];\n+182 origins[ n+m+i ][ dim-1 ] = ct( 1 );\n+183 }\n+184 return n+2*m;\n+185 }\n+186 else\n+187 {\n+188 const unsigned int m = referenceOrigins( baseId, dim-1, codim-1, origins );\n+189 if( codim == dim )\n+190 {\n+191 origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );\n+192 origins[ m ][ dim-1 ] = ct( 1 );\n+193 return m+1;\n+194 }\n+195 else\n+196 return m+referenceOrigins( baseId, dim-1, codim, origins+m );\n+197 }\n+198 }\n+199 else\n+200 {\n+201 origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n+202 return 1;\n+203 }\n+204 }\n+205\n+206\n+207\n+208 // referenceEmbeddings\n+209 // -------------------\n+210\n+211 template< class ct, int cdim, int mydim >\n+212 inline unsigned int\n+213 referenceEmbeddings ( unsigned int topologyId, int dim, int codim,\n+214 FieldVector< ct, cdim > *origins,\n+215 FieldMatrix< ct, mydim, cdim > *jacobianTransposeds )\n+216 {\n+217 assert( (0 <= codim) && (codim <= dim) && (dim <= cdim) );\n+218 assert( (dim - codim <= mydim) && (mydim <= cdim) );\n+219 assert( topologyId < numTopologies( dim ) );\n+220\n+221 if( (0 < codim) && (codim <= dim) )\n+222 {\n+223 const unsigned int baseId = baseTopologyId( topologyId, dim );\n+224 if( isPrism( topologyId, dim ) )\n+225 {\n+226 const unsigned int n = (codim < dim ? referenceEmbeddings( baseId, dim-1,\n+codim, origins, jacobianTransposeds ) : 0);\n+227 for( unsigned int i = 0; i < n; ++i )\n+228 jacobianTransposeds[ i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );\n+229\n+230 const unsigned int m = referenceEmbeddings( baseId, dim-1, codim-1,\n+origins+n, jacobianTransposeds+n );\n+231 std::copy( origins+n, origins+n+m, origins+n+m );\n+232 std::copy( jacobianTransposeds+n, jacobianTransposeds+n+m,\n+jacobianTransposeds+n+m );\n+233 for( unsigned int i = 0; i < m; ++i )\n+234 origins[ n+m+i ][ dim-1 ] = ct( 1 );\n+235\n+236 return n+2*m;\n+237 }\n+238 else // !isPrism\n+239 {\n+240 const unsigned int m = referenceEmbeddings( baseId, dim-1, codim-1,\n+origins, jacobianTransposeds );\n+241 if( codim == dim )\n+242 {\n+243 origins[ m ] = FieldVector< ct, cdim >( ct( 0 ) );\n+244 origins[ m ][ dim-1 ] = ct( 1 );\n+245 jacobianTransposeds[ m ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );\n+246 return m+1;\n+247 }\n+248 else if( codim < dim )\n+249 {\n+250 const unsigned int n = referenceEmbeddings( baseId, dim-1, codim,\n+origins+m, jacobianTransposeds+m );\n+251 for( unsigned int i = 0; i < n; ++i )\n+252 {\n+253 for( int k = 0; k < dim-1; ++k )\n+254 jacobianTransposeds[ m+i ][ dim-codim-1 ][ k ] = -origins[ m+i ][ k ];\n+255 jacobianTransposeds[ m+i ][ dim-codim-1 ][ dim-1 ] = ct( 1 );\n+256 }\n+257 return m+n;\n+258 }\n+259 }\n+260 }\n+261 else if( codim == 0 )\n+262 {\n+263 origins[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n+264 jacobianTransposeds[ 0 ] = FieldMatrix< ct, mydim, cdim >( ct( 0 ) );\n+265 for( int k = 0; k < dim; ++k )\n+266 jacobianTransposeds[ 0 ][ k ][ k ] = ct( 1 );\n+267 return 1;\n+268 }\n+269\n+270 // this point should not be reached since all cases are handled before.\n+271 std::abort();\n+272 return 0;\n+273 }\n+274\n+275\n+276\n+277 // referenceIntegrationOuterNormals\n+278 // --------------------------------\n+279\n+280 template< class ct, int cdim >\n+281 inline unsigned int\n+282 referenceIntegrationOuterNormals ( unsigned int topologyId, int dim,\n+283 const FieldVector< ct, cdim > *origins,\n+284 FieldVector< ct, cdim > *normals )\n+285 {\n+286 assert( (dim > 0) && (dim <= cdim) );\n+287 assert( topologyId < numTopologies( dim ) );\n+288\n+289 if( dim > 1 )\n+290 {\n+291 const unsigned int baseId = baseTopologyId( topologyId, dim );\n+292 if( isPrism( topologyId, dim ) )\n+293 {\n+294 const unsigned int numBaseFaces\n+295 = referenceIntegrationOuterNormals( baseId, dim-1, origins, normals );\n+296\n+297 for( unsigned int i = 0; i < 2; ++i )\n+298 {\n+299 normals[ numBaseFaces+i ] = FieldVector< ct, cdim >( ct( 0 ) );\n+300 normals[ numBaseFaces+i ][ dim-1 ] = ct( 2*int( i )-1 );\n+301 }\n+302\n+303 return numBaseFaces+2;\n+304 }\n+305 else\n+306 {\n+307 normals[ 0 ] = FieldVector< ct, cdim >( ct( 0 ) );\n+308 normals[ 0 ][ dim-1 ] = ct( -1 );\n+309\n+310 const unsigned int numBaseFaces\n+311 = referenceIntegrationOuterNormals( baseId, dim-1, origins+1, normals+1 );\n+312 for( unsigned int i = 1; i <= numBaseFaces; ++i )\n+313 normals[ i ][ dim-1 ] = normals[ i ]*origins[ i ];\n+314\n+315 return numBaseFaces+1;\n+316 }\n+317 }\n+318 else\n+319 {\n+320 for( unsigned int i = 0; i < 2; ++i )\n+321 {\n+322 normals[ i ] = FieldVector< ct, cdim >( ct( 0 ) );\n+323 normals[ i ][ 0 ] = ct( 2*int( i )-1 );\n+324 }\n+325\n+326 return 2;\n+327 }\n+328 }\n+329\n+330 template< class ct, int cdim >\n+331 inline unsigned int\n+332 referenceIntegrationOuterNormals ( unsigned int topologyId, int dim,\n+333 FieldVector< ct, cdim > *normals )\n+334 {\n+335 assert( (dim > 0) && (dim <= cdim) );\n+336\n+337 FieldVector< ct, cdim > *origins\n+338 = new FieldVector< ct, cdim >[ _\bs_\bi_\bz_\be( topologyId, dim, 1 ) ];\n+339 referenceOrigins( topologyId, dim, 1, origins );\n+340\n+341 const unsigned int numFaces\n+342 = referenceIntegrationOuterNormals( topologyId, dim, origins, normals );\n+343 assert( numFaces == _\bs_\bi_\bz_\be( topologyId, dim, 1 ) );\n+344\n+345 delete[] origins;\n+346\n+347 return numFaces;\n+348 }\n+349\n+350 } // namespace Impl\n+351\n+352\n+353\n+354 // ReferenceElement\n+355 // ----------------\n+356\n+375 template< class ctype_, int dim >\n+376 class ReferenceElementImplementation\n+377 {\n+378\n+379 public:\n+380\n+382 using ctype = ctype_;\n+383\n+385 using CoordinateField = ctype;\n+386\n+388 using Coordinate = Dune::FieldVector<ctype,dim>;\n+389\n+391 static constexpr int dimension = dim;\n+392\n+394 typedef ctype Volume;\n+395\n+396 private:\n+397\n+398 friend class Impl::ReferenceElementContainer< ctype, dim >;\n+399\n+400 struct SubEntityInfo;\n+401\n+402 template< int codim > struct CreateGeometries;\n+403\n+404 public:\n+406 template< int codim >\n+407 struct Codim\n+408 {\n+410 typedef AffineGeometry< ctype, dim-codim, dim > Geometry;\n+411 };\n+412\n+413 // ReferenceElement cannot be copied.\n+414 ReferenceElementImplementation ( const ReferenceElementImplementation& ) =\n+delete;\n+415\n+416 // ReferenceElementImplementation cannot be copied.\n+417 ReferenceElementImplementation& operator= ( const\n+ReferenceElementImplementation& ) = delete;\n+418\n+419 // ReferenceElementImplementation is default-constructible (required for\n+storage in std::array)\n+420 ReferenceElementImplementation () = default;\n+421\n+426 int _\bs_\bi_\bz_\be ( int c ) const\n+427 {\n+428 assert( (c >= 0) && (c <= dim) );\n+429 return info_[ c ].size();\n+430 }\n+431\n+443 int _\bs_\bi_\bz_\be ( int i, int c, int cc ) const\n+444 {\n+445 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n+446 return info_[ c ][ i ].size( cc );\n+447 }\n+448\n+462 int subEntity ( int i, int c, int ii, int cc ) const\n+463 {\n+464 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n+465 return info_[ c ][ i ].number( ii, cc );\n+466 }\n+467\n+483 auto subEntities ( int i, int c, int cc ) const\n+484 {\n+485 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n+486 return info_[ c ][ i ].numbers( cc );\n+487 }\n+488\n+497 const GeometryType &type ( int i, int c ) const\n+498 {\n+499 assert( (i >= 0) && (i < _\bs_\bi_\bz_\be( c )) );\n+500 return info_[ c ][ i ].type();\n+501 }\n+502\n+504 const GeometryType &type () const { return type( 0, 0 ); }\n+505\n+515 const Coordinate &position( int i, int c ) const\n+516 {\n+517 assert( (c >= 0) && (c <= dim) );\n+518 return baryCenters_[ c ][ i ];\n+519 }\n+520\n+528 bool checkInside ( const Coordinate &local ) const\n+529 {\n+530 const ctype tolerance = ctype( 64 ) * std::numeric_limits< ctype >::epsilon\n+();\n+531 return Impl::template checkInside< ctype, dim >( type().id(), dim, local,\n+tolerance );\n+532 }\n+533\n+545 template< int codim >\n+546 typename Codim< codim >::Geometry geometry ( int i ) const\n+547 {\n+548 return std::get< codim >( geometries_ )[ i ];\n+549 }\n+550\n+552 Volume volume () const\n+553 {\n+554 return volume_;\n+555 }\n+556\n+564 const Coordinate &integrationOuterNormal ( int face ) const\n+565 {\n+566 assert( (face >= 0) && (face < int( integrationNormals_.size() )) );\n+567 return integrationNormals_[ face ];\n+568 }\n+569\n+570 private:\n+571 void initialize ( unsigned int topologyId )\n+572 {\n+573 assert( topologyId < Impl::numTopologies( dim ) );\n+574\n+575 // set up subentities\n+576 for( int codim = 0; codim <= dim; ++codim )\n+577 {\n+578 const unsigned int _\bs_\bi_\bz_\be = Impl::size( topologyId, dim, codim );\n+579 info_[ codim ].resize( size );\n+580 for( unsigned int i = 0; i < _\bs_\bi_\bz_\be; ++i )\n+581 info_[ codim ][ i ].initialize( topologyId, codim, i );\n+582 }\n+583\n+584 // compute corners\n+585 const unsigned int numVertices = _\bs_\bi_\bz_\be( dim );\n+586 baryCenters_[ dim ].resize( numVertices );\n+587 Impl::referenceCorners( topologyId, dim, &(baryCenters_[ dim ][ 0 ]) );\n+588\n+589 // compute barycenters\n+590 for( int codim = 0; codim < dim; ++codim )\n+591 {\n+592 baryCenters_[ codim ].resize( _\bs_\bi_\bz_\be(codim) );\n+593 for( int i = 0; i < _\bs_\bi_\bz_\be( codim ); ++i )\n+594 {\n+595 baryCenters_[ codim ][ i ] = Coordinate( ctype( 0 ) );\n+596 const unsigned int numCorners = _\bs_\bi_\bz_\be( i, codim, dim );\n+597 for( unsigned int j = 0; j < numCorners; ++j )\n+598 baryCenters_[ codim ][ i ] += baryCenters_[ dim ][ subEntity( i, codim, j,\n+dim ) ];\n+599 baryCenters_[ codim ][ i ] *= ctype( 1 ) / ctype( numCorners );\n+600 }\n+601 }\n+602\n+603 // compute reference element volume\n+604 volume_ = Impl::template referenceVolume< ctype >( topologyId, dim );\n+605\n+606 // compute integration outer normals\n+607 if( dim > 0 )\n+608 {\n+609 integrationNormals_.resize( _\bs_\bi_\bz_\be( 1 ) );\n+610 Impl::referenceIntegrationOuterNormals( topologyId, dim, &\n+(integrationNormals_[ 0 ]) );\n+611 }\n+612\n+613 // set up geometries\n+614 Hybrid::forEach( std::make_index_sequence< dim+1 >{}, [ & ]( auto i )\n+{ CreateGeometries< i >::apply( *this, geometries_ ); } );\n+615 }\n+616\n+617 template< int... codim >\n+618 static std::tuple< std::vector< typename Codim< codim >::Geometry >... >\n+619 makeGeometryTable ( std::integer_sequence< int, codim... > );\n+620\n+622 typedef decltype( makeGeometryTable( std::make_integer_sequence< int, dim+1\n+>() ) ) GeometryTable;\n+623\n+625 ctype volume_;\n+626\n+627 std::vector< Coordinate > baryCenters_[ dim+1 ];\n+628 std::vector< Coordinate > integrationNormals_;\n+629\n+631 GeometryTable geometries_;\n+632\n+633 std::vector< SubEntityInfo > info_[ dim+1 ];\n+634 };\n+635\n+637 template< class ctype, int dim >\n+638 struct ReferenceElementImplementation< ctype, dim >::SubEntityInfo\n+639 {\n+640 // Compute upper bound for the number of subsentities.\n+641 // If someone knows an explicit formal feel free to\n+642 // implement it here.\n+643 static constexpr std::size_t maxSubEntityCount()\n+644 {\n+645 std::size_t maxCount=0;\n+646 for(std::size_t codim=0; codim<=dim; ++codim)\n+647 maxCount = std::max(maxCount, binomial(std::size_t(dim),codim)*(1 <<\n+codim));\n+648 return maxCount;\n+649 }\n+650\n+651 using SubEntityFlags = std::bitset<maxSubEntityCount()>;\n+652\n+653 class SubEntityRange\n+654 : public Dune::IteratorRange<const unsigned int*>\n+655 {\n+656 using Base = typename Dune::IteratorRange<const unsigned int*>;\n+657\n+658 public:\n+659\n+660 using iterator = Base::iterator;\n+661 using const_iterator = Base::const_iterator;\n+662\n+663 SubEntityRange(const iterator& begin, const iterator& end, const\n+SubEntityFlags& contains) :\n+664 Base(begin, end),\n+665 containsPtr_(&contains),\n+666 size_(end-begin)\n+667 {}\n+668\n+669 SubEntityRange() :\n+670 Base(),\n+671 containsPtr_(nullptr),\n+672 size_(0)\n+673 {}\n+674\n+675 std::size_t _\bs_\bi_\bz_\be() const\n+676 {\n+677 return size_;\n+678 }\n+679\n+680 bool contains(std::size_t i) const\n+681 {\n+682 return (*containsPtr_)[i];\n+683 }\n+684\n+685 private:\n+686 const SubEntityFlags* containsPtr_;\n+687 std::size_t size_;\n+688 std::size_t offset_;\n+689 };\n+690\n+691 using NumberRange = typename Dune::IteratorRange<const unsigned int*>;\n+692\n+693 SubEntityInfo ()\n+694 : numbering_( nullptr )\n+695 {\n+696 std::fill( offset_.begin(), offset_.end(), 0 );\n+697 }\n+698\n+699 SubEntityInfo ( const SubEntityInfo &other )\n+700 : offset_( other.offset_ ),\n+701 type_( other.type_ ),\n+702 containsSubentity_( other.containsSubentity_ )\n+703 {\n+704 numbering_ = allocate();\n+705 std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );\n+706 }\n+707\n+708 ~SubEntityInfo () { deallocate( numbering_ ); }\n+709\n+710 const SubEntityInfo &operator= ( const SubEntityInfo &other )\n+711 {\n+712 type_ = other.type_;\n+713 offset_ = other.offset_;\n+714\n+715 deallocate( numbering_ );\n+716 numbering_ = allocate();\n+717 std::copy( other.numbering_, other.numbering_ + capacity(), numbering_ );\n+718\n+719 containsSubentity_ = other.containsSubentity_;\n+720\n+721 return *this;\n+722 }\n+723\n+724 int _\bs_\bi_\bz_\be ( int cc ) const\n+725 {\n+726 assert( (cc >= 0) && (cc <= dim) );\n+727 return (offset_[ cc+1 ] - offset_[ cc ]);\n+728 }\n+729\n+730 int number ( int ii, int cc ) const\n+731 {\n+732 assert( (ii >= 0) && (ii < _\bs_\bi_\bz_\be( cc )) );\n+733 return numbering_[ offset_[ cc ] + ii ];\n+734 }\n+735\n+736 auto numbers ( int cc ) const\n+737 {\n+738 return SubEntityRange( numbering_ + offset_[ cc ], numbering_ + offset_\n+[ cc+1 ], containsSubentity_[cc]);\n+739 }\n+740\n+741 const GeometryType &type () const { return type_; }\n+742\n+743 void initialize ( unsigned int topologyId, int codim, unsigned int i )\n+744 {\n+745 const unsigned int subId = Impl::subTopologyId( topologyId, dim, codim, i\n+);\n+746 type_ = GeometryType( subId, dim-codim );\n+747\n+748 // compute offsets\n+749 for( int cc = 0; cc <= codim; ++cc )\n+750 offset_[ cc ] = 0;\n+751 for( int cc = codim; cc <= dim; ++cc )\n+752 offset_[ cc+1 ] = offset_[ cc ] + Impl::size( subId, dim-codim, cc-codim );\n+753\n+754 // compute subnumbering\n+755 deallocate( numbering_ );\n+756 numbering_ = allocate();\n+757 for( int cc = codim; cc <= dim; ++cc )\n+758 Impl::subTopologyNumbering( topologyId, dim, codim, i, cc-codim,\n+numbering_+offset_[ cc ], numbering_+offset_[ cc+1 ] );\n+759\n+760 // initialize containsSubentity lookup-table\n+761 for(std::size_t cc=0; cc<= dim; ++cc)\n+762 {\n+763 containsSubentity_[cc].reset();\n+764 for(std::size_t idx=0; idx<std::size_t(_\bs_\bi_\bz_\be(cc)); ++idx)\n+765 containsSubentity_[cc][number(idx,cc)] = true;\n+766 }\n+767 }\n+768\n+769 protected:\n+770 int codim () const { return dim - type().dim(); }\n+771\n+772 unsigned int *allocate () { return (capacity() != 0 ? new unsigned int\n+[ capacity() ] : nullptr); }\n+773 void deallocate ( unsigned int *ptr ) { delete[] ptr; }\n+774 unsigned int capacity () const { return offset_[ dim+1 ]; }\n+775\n+776 private:\n+777 unsigned int *numbering_;\n+778 std::array< unsigned int, dim+2 > offset_;\n+779 GeometryType type_;\n+780 std::array< SubEntityFlags, dim+1> containsSubentity_;\n+781 };\n+782\n+783\n+784 template< class ctype, int dim >\n+785 template< int codim >\n+786 struct ReferenceElementImplementation< ctype, dim >::CreateGeometries\n+787 {\n+788 template< int cc >\n+789 static typename ReferenceElements< ctype, dim-cc >::ReferenceElement\n+790 subRefElement( const ReferenceElementImplementation< ctype, dim >\n+&refElement, int i, std::integral_constant< int, cc > )\n+791 {\n+792 return _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b-_\bc_\bc_\b _\b>_\b:_\b:_\bg_\be_\bn_\be_\br_\ba_\bl( refElement.type( i, cc\n+) );\n+793 }\n+794\n+795 static typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\b _\bc_\bt_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\b _\b>_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+796 subRefElement(const ReferenceElementImplementation< ctype, dim >\n+&refElement,\n+797 [[maybe_unused]] int i, std::integral_constant<int, 0>)\n+798 {\n+799 return refElement;\n+800 }\n+801\n+802 static void apply ( const ReferenceElementImplementation< ctype, dim >\n+&refElement, GeometryTable &geometries )\n+803 {\n+804 const int _\bs_\bi_\bz_\be = refElement.size( codim );\n+805 std::vector< FieldVector< ctype, dim > > origins( size );\n+806 std::vector< FieldMatrix< ctype, dim - codim, dim > > jacobianTransposeds\n+( size );\n+807 Impl::referenceEmbeddings( refElement.type().id(), dim, codim, &(origins[ 0\n+]), &(jacobianTransposeds[ 0 ]) );\n+808\n+809 std::get< codim >( geometries ).reserve( size );\n+810 for( int i = 0; i < _\bs_\bi_\bz_\be; ++i )\n+811 {\n+812 typename Codim< codim >::Geometry geometry( subRefElement( refElement, i,\n+std::integral_constant< int, codim >() ), origins[ i ], jacobianTransposeds[ i\n+] );\n+813 std::get< codim >( geometries ).push_back( geometry );\n+814 }\n+815 }\n+816 };\n+817\n+818#endif // DOXYGEN\n+819\n+820 } // namespace Geo\n+821\n+822} // namespace Dune\n+823\n+824#endif // #ifndef DUNE_GEOMETRY_REFERENCEELEMENTIMPLEMENTATION_HH\n _\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n An implementation of the Geometry interface for affine geometries.\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n+_\bt_\by_\bp_\be_\b._\bh_\bh\n+A unique label for each type of element that can occur in a grid.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n+_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bz_\be\n+@ size\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:194\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n+typename Container::ReferenceElement ReferenceElement\n+The reference element type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bg_\be_\bn_\be_\br_\ba_\bl\n+static const ReferenceElement & general(const GeometryType &type)\n+get general reference elements\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:156\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00218.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00218.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: convergence.hh File Reference</title>\n+<title>dune-geometry: virtualrefinement.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,33 +65,59 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">convergence.hh File Reference</div></div>\n+<a href=\"#nested-classes\">Classes</a> |\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">virtualrefinement.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <cmath></code><br />\n-<code>#include <limits></code><br />\n+\n+<p>This file contains the virtual wrapper around refinement. \n+<a href=\"#details\">More...</a></p>\n+<div class=\"textblock\"><code>#include <vector></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include "<a class=\"el\" href=\"a00176_source.html\">refinement.hh</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00227_source.html\">type.hh</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a>"</code><br />\n </div>\n <p><a href=\"a00218_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n+Classes</h2></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01459.html\">Dune::VirtualRefinement< dimension, CoordType ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\"><a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> base class. <a href=\"a01459.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01463.html\">Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">codim database of <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> <a href=\"a01463.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n+Functions</h2></td></tr>\n+<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\" id=\"r_a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01459.html\">VirtualRefinement</a>< dimension, CoordType > & </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"el\" href=\"a01367.html\">GeometryType</a> coerceTo)</td></tr>\n+<tr class=\"memdesc:a73043181be4688f6cc83f1416cc176c6\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">return a reference to the <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> according to the parameters <br /></td></tr>\n+<tr class=\"separator:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-</div><!-- contents -->\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>This file contains the virtual wrapper around refinement. </p>\n+</div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,17 +1,37 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-convergence.hh File Reference\n-#include <cmath>\n-#include <limits>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+virtualrefinement.hh File Reference\n+This file contains the virtual wrapper around refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <vector>\n+#include <dune/common/fvector.hh>\n+#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n+#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+#include \"_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt base class. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0 codim database of _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template<int dimension, class CoordType >\n+_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt< dimension, CoordType > _\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+ &\u00a0 geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n+ return a reference to the\n+\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt according to the\n+ parameters\n+\u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+This file contains the virtual wrapper around refinement.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00218_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00218_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: convergence.hh Source File</title>\n+<title>dune-geometry: virtualrefinement.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,44 +70,139 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">convergence.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">virtualrefinement.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00218.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cmath></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span> </div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"keyword\">namespace </span>Dune::Impl {</div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span> </div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> R = <span class=\"keywordtype\">double</span>></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"keyword\">struct </span>ConvergenceOptions</div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span>{</div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> <span class=\"keywordtype\">int</span> maxIt = 100;</div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> R absTol = []{ <span class=\"keyword\">using </span>std::sqrt; <span class=\"keywordflow\">return</span> sqrt(std::numeric_limits<R>::epsilon()); }();</div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span>};</div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> </div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span>} <span class=\"comment\">// end namespace Dune::Impl</span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH</span></div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> </div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> </div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00176.html\">refinement.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00227.html\">type.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> </div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span>{</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"comment\">// //////////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> <span class=\"comment\">// The virtual base class and its iterators</span></div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"comment\">// Refinement</span></div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> </div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00282\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html\"> 282</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a></div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> {</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01463.html\">Codim</a>;</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\"> 288</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\"> 290</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> </div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\"> 297</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\"> 303</a></span> <span class=\"keyword\">typedef</span> std::vector<int> <a class=\"code hl_typedef\" href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> </div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a07310e9597e483f2314467b980796470\"> 307</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<dimension></a> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\"> 308</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<0></a> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\"> 315</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\">nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> </div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> </div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> </div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\"> 336</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\">nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00353\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\"> 353</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\">~VirtualRefinement</a>()</div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> </div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\"> 357</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\">vBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\"> 358</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\">vEndBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\"> 359</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\">eBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\"> 360</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\">eEndBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> </div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00366\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01463.html\"> 366</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01463.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> {</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span> </div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"comment\">// ////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"comment\">// The refinement builder</span></div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <a class=\"code hl_function\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">buildRefinement</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> coerceTo);</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> </div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00230.html\">virtualrefinement.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n+<div class=\"ttc\" id=\"aa00176_html\"><div class=\"ttname\"><a href=\"a00176.html\">refinement.hh</a></div><div class=\"ttdoc\">This file simply includes all Refinement implementations so you don't have to do them separately.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00230_html\"><div class=\"ttname\"><a href=\"a00230.html\">virtualrefinement.cc</a></div><div class=\"ttdoc\">This file contains the virtual wrapper around refinement.</div></div>\n+<div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a73043181be4688f6cc83f1416cc176c6\"><div class=\"ttname\"><a href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType geometryType, GeometryType coerceTo)</div><div class=\"ttdoc\">return a reference to the VirtualRefinement according to the parameters</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:503</div></div>\n+<div class=\"ttc\" id=\"aa01223_html\"><div class=\"ttname\"><a href=\"a01223.html\">Dune::RefinementIntervals</a></div><div class=\"ttdoc\">Holds the number of refined intervals per axis needed for virtual and static refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:94</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01423_html\"><div class=\"ttname\"><a href=\"a01423.html\">Dune::VirtualRefinement::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:231</div></div>\n+<div class=\"ttc\" id=\"aa01459_html\"><div class=\"ttname\"><a href=\"a01459.html\">Dune::VirtualRefinement</a></div><div class=\"ttdoc\">VirtualRefinement base class.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:283</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a07310e9597e483f2314467b980796470\"><div class=\"ttname\"><a href=\"a01459.html#a07310e9597e483f2314467b980796470\">Dune::VirtualRefinement::VertexIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< dimension > VertexIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:307</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a2133dc6341884d97ae1204a01e0a69dd\"><div class=\"ttname\"><a href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\">Dune::VirtualRefinement::eEndBack</a></div><div class=\"ttdeci\">virtual ElementIteratorBack * eEndBack(Dune::RefinementIntervals tag) const =0</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a48a0b20da4d3a262b8aa94999c03ec4c\"><div class=\"ttname\"><a href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">Dune::VirtualRefinement::vBegin</a></div><div class=\"ttdeci\">VertexIterator vBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:38</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a58217a0701cdf7458ab63b09948dcd18\"><div class=\"ttname\"><a href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">Dune::VirtualRefinement::eBegin</a></div><div class=\"ttdeci\">ElementIterator eBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:54</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a5cc985e701190f220118f89d12a93e59\"><div class=\"ttname\"><a href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\">Dune::VirtualRefinement::nElements</a></div><div class=\"ttdeci\">virtual int nElements(Dune::RefinementIntervals tag) const =0</div><div class=\"ttdoc\">Get the number of Elements.</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a76668e0abfac920b12f8d34feca43054\"><div class=\"ttname\"><a href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">Dune::VirtualRefinement::eEnd</a></div><div class=\"ttdeci\">ElementIterator eEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:62</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a7e14c2a7c4d16a2c1760f6e447246f1c\"><div class=\"ttname\"><a href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">Dune::VirtualRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:290</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a82608f84d03bf3377c0949d528300c5e\"><div class=\"ttname\"><a href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\">Dune::VirtualRefinement::~VirtualRefinement</a></div><div class=\"ttdeci\">virtual ~VirtualRefinement()</div><div class=\"ttdoc\">Destructor.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:353</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a842f9ea89c5bc1de43825973ae9ee7f8\"><div class=\"ttname\"><a href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">Dune::VirtualRefinement::vEnd</a></div><div class=\"ttdeci\">VertexIterator vEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:46</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ac1bbbac41ae70b73baf8f702419c5d87\"><div class=\"ttname\"><a href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">Dune::VirtualRefinement::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdoc\">The CoordVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:297</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ac6a87e6fe85c810ba8533b6ca4c10e53\"><div class=\"ttname\"><a href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\">Dune::VirtualRefinement::nVertices</a></div><div class=\"ttdeci\">virtual int nVertices(Dune::RefinementIntervals tag) const =0</div><div class=\"ttdoc\">Get the number of Vertices.</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ad2fc3369b556cea8a185cc9887511129\"><div class=\"ttname\"><a href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\">Dune::VirtualRefinement::IndexVector</a></div><div class=\"ttdeci\">std::vector< int > IndexVector</div><div class=\"ttdoc\">The IndexVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:303</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ad5eaa227e5deeb688dad02b635829455\"><div class=\"ttname\"><a href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">Dune::VirtualRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:288</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_aea3e4ccd649fe10bc0b1eb4091492820\"><div class=\"ttname\"><a href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\">Dune::VirtualRefinement::vEndBack</a></div><div class=\"ttdeci\">virtual VertexIteratorBack * vEndBack(Dune::RefinementIntervals tag) const =0</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_af14612af29e934d64e11384e81b414f3\"><div class=\"ttname\"><a href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">Dune::VirtualRefinement::ElementIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< 0 > ElementIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:308</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_af6f0aa8bee68e5c7004306fbf7c59d08\"><div class=\"ttname\"><a href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\">Dune::VirtualRefinement::eBeginBack</a></div><div class=\"ttdeci\">virtual ElementIteratorBack * eBeginBack(Dune::RefinementIntervals tag) const =0</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_afa7bc349f80966d4a85a7c305795c0d4\"><div class=\"ttname\"><a href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\">Dune::VirtualRefinement::vBeginBack</a></div><div class=\"ttdeci\">virtual VertexIteratorBack * vBeginBack(Dune::RefinementIntervals tag) const =0</div></div>\n+<div class=\"ttc\" id=\"aa01463_html\"><div class=\"ttname\"><a href=\"a01463.html\">Dune::VirtualRefinement::Codim</a></div><div class=\"ttdoc\">codim database of VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:367</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,36 +1,186 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n-convergence.hh\n+virtualrefinement.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n-6#define DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n+5#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n+6#define DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n 7\n-8#include <cmath>\n-9#include <limits>\n-10\n-11namespace Dune::Impl {\n-12\n-13template <class R = double>\n-14struct ConvergenceOptions\n-15{\n-17 int maxIt = 100;\n-18\n-20 R absTol = []{ using std::sqrt; return sqrt(std::numeric_limits<R>::epsilon\n-()); }();\n-21};\n-22\n-23} // end namespace Dune::Impl\n-24\n-25#endif // DUNE_GEOMETRY_UTILITY_CONVERGENCE_HH\n+257#include <vector>\n+258\n+259#include <dune/common/fvector.hh>\n+260\n+261#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n+262#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+263\n+264namespace _\bD_\bu_\bn_\be\n+265{\n+266 // //////////////////////////////////////////\n+267 //\n+268 // The virtual base class and its iterators\n+269 //\n+270\n+271 //\n+272 // Refinement\n+273 //\n+274\n+281 template<int dimension, class CoordType>\n+_\b2_\b8_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+283 {\n+284 public:\n+285 template<int codimension>\n+286 struct _\bC_\bo_\bd_\bi_\bm;\n+_\b2_\b8_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b2_\b9_\b0 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+291\n+_\b2_\b9_\b7 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b3_\b0_\b3 typedef std::vector<int> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+304\n+305 template<int codimension>\n+306 class _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+_\b3_\b0_\b7 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+_\b3_\b0_\b8 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\b0_\b> _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+309\n+_\b3_\b1_\b5 virtual int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const = 0;\n+316\n+322 _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n+323\n+329 _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n+330\n+_\b3_\b3_\b6 virtual int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const = 0;\n+337\n+343 _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n+344\n+350 _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n+351\n+_\b3_\b5_\b3 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt()\n+354 {}\n+355\n+356 protected:\n+_\b3_\b5_\b7 virtual _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+= 0;\n+_\b3_\b5_\b8 virtual _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\bv_\bE_\bn_\bd_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const =\n+0;\n+_\b3_\b5_\b9 virtual _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+const = 0;\n+_\b3_\b6_\b0 virtual _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\be_\bE_\bn_\bd_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+= 0;\n+361 };\n+362\n+364 template<int dimension, class CoordType>\n+365 template<int codimension>\n+_\b3_\b6_\b6 struct _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n+367 {\n+368 class SubEntityIterator;\n+369 };\n+370\n+371 // ////////////////////////\n+372 //\n+373 // The refinement builder\n+374 //\n+375\n+376 template<int dimension, class CoordType>\n+377 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n+378 _\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo);\n+379\n+380} // namespace Dune\n+381\n+382#include \"_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\"\n+383\n+384#endif // DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n+_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n+This file simply includes all Refinement implementations so you don't have to\n+do them separately.\n+_\bt_\by_\bp_\be_\b._\bh_\bh\n+A unique label for each type of element that can occur in a grid.\n+_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\n+This file contains the virtual wrapper around refinement.\n+_\bD_\bu_\bn_\be\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n+_\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType\n+geometryType, GeometryType coerceTo)\n+return a reference to the VirtualRefinement according to the parameters\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:503\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+Holds the number of refined intervals per axis needed for virtual and static\n+refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:94\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:231\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement base class.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:283\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+SubEntityIteratorBack< dimension > VertexIteratorBack\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:307\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd_\bB_\ba_\bc_\bk\n+virtual ElementIteratorBack * eEndBack(Dune::RefinementIntervals tag) const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+VertexIterator vBegin(Dune::RefinementIntervals tag) const\n+Get an VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:38\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+ElementIterator eBegin(Dune::RefinementIntervals tag) const\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:54\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+virtual int nElements(Dune::RefinementIntervals tag) const =0\n+Get the number of Elements.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n+ElementIterator eEnd(Dune::RefinementIntervals tag) const\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:62\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+The ElementIterator of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:290\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+virtual ~VirtualRefinement()\n+Destructor.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:353\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n+VertexIterator vEnd(Dune::RefinementIntervals tag) const\n+Get an VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:46\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+The CoordVector of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:297\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+virtual int nVertices(Dune::RefinementIntervals tag) const =0\n+Get the number of Vertices.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+std::vector< int > IndexVector\n+The IndexVector of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:303\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+The VertexIterator of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:288\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd_\bB_\ba_\bc_\bk\n+virtual VertexIteratorBack * vEndBack(Dune::RefinementIntervals tag) const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+SubEntityIteratorBack< 0 > ElementIteratorBack\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:308\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk\n+virtual ElementIteratorBack * eBeginBack(Dune::RefinementIntervals tag) const\n+=0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk\n+virtual VertexIteratorBack * vBeginBack(Dune::RefinementIntervals tag) const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+codim database of VirtualRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:367\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00221.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00221.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: typefromvertexcount.hh File Reference</title>\n+<title>dune-geometry: typeindex.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,39 +65,50 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">typefromvertexcount.hh File Reference</div></div>\n+<a href=\"#nested-classes\">Classes</a> |\n+<a href=\"#namespaces\">Namespaces</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">typeindex.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+\n+<p>Helper classes to provide indices for geometrytypes for use in a vector. \n+<a href=\"#details\">More...</a></p>\n+<div class=\"textblock\"><code>#include <cstddef></code><br />\n+<code>#include <dune/common/indices.hh></code><br />\n+<code>#include <dune/common/hybridutilities.hh></code><br />\n+<code>#include "<a class=\"el\" href=\"a00227_source.html\">type.hh</a>"</code><br />\n </div>\n <p><a href=\"a00221_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n+Classes</h2></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01379.html\">Dune::LocalGeometryTypeIndex</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute per-dimension indices for geometry types. <a href=\"a01379.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01383.html\">Dune::GlobalGeometryTypeIndex</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute indices for geometry types, taking the dimension into account. <a href=\"a01383.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-</table><table class=\"memberdecls\">\n-<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n-Functions</h2></td></tr>\n-<tr class=\"memitem:a46da773c6f7d01077322c1064037e52f\" id=\"r_a46da773c6f7d01077322c1064037e52f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01367.html\">GeometryType</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">Dune::geometryTypeFromVertexCount</a> (unsigned int dim, unsigned int vertices)</td></tr>\n-<tr class=\"memdesc:a46da773c6f7d01077322c1064037e52f\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Utility function to construct the correct geometry type given the dimension and the number of vertices. <br /></td></tr>\n-<tr class=\"separator:a46da773c6f7d01077322c1064037e52f\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-</div><!-- contents -->\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>Helper classes to provide indices for geometrytypes for use in a vector. </p>\n+</div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,22 +1,30 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-typefromvertexcount.hh File Reference\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+typeindex.hh File Reference\n+Helper classes to provide indices for geometrytypes for use in a vector.\n+_\bM_\bo_\br_\be_\b._\b._\b.\n+#include <cstddef>\n+#include <dune/common/indices.hh>\n+#include <dune/common/hybridutilities.hh>\n+#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+\u00a0 Compute per-dimension indices for geometry types. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+\u00a0 Compute indices for geometry types, taking the dimension into account.\n+ _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt (unsigned int dim, unsigned int\n- vertices)\n-\u00a0 Utility function to construct the correct geometry type given the\n- dimension and the number of vertices.\n-\u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+Helper classes to provide indices for geometrytypes for use in a vector.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00221_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00221_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: typefromvertexcount.hh Source File</title>\n+<title>dune-geometry: typeindex.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,77 +70,165 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">typefromvertexcount.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">typeindex.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00221.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span> </div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> <span class=\"keyword\">inline</span></div>\n-<div class=\"foldopen\" id=\"foldopen00017\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\"> 17</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">geometryTypeFromVertexCount</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> vertices)</div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> {</div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keywordflow\">switch</span> (dim)</div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> <span class=\"keywordflow\">case</span> 0 :</div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span> <span class=\"keywordflow\">return</span> GeometryTypes::vertex;</div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> <span class=\"keywordflow\">case</span> 1 :</div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> <span class=\"keywordflow\">return</span> GeometryTypes::line;</div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"keywordflow\">case</span> 2 :</div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"keywordflow\">switch</span> (vertices) {</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"keywordflow\">case</span> 3 :</div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"keywordflow\">return</span> GeometryTypes::triangle;</div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"keywordflow\">case</span> 4 :</div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"keywordflow\">return</span> GeometryTypes::quadrilateral;</div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> default :</div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"2d elements with "</span> << vertices << <span class=\"stringliteral\">" corners are not supported!"</span>);</div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> }</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keywordflow\">case</span> 3 :</div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keywordflow\">switch</span> (vertices) {</div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keywordflow\">case</span> 4 :</div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"keywordflow\">return</span> GeometryTypes::tetrahedron;</div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"keywordflow\">case</span> 5 :</div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"keywordflow\">return</span> GeometryTypes::pyramid;</div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keywordflow\">case</span> 6 :</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keywordflow\">return</span> GeometryTypes::prism;</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keywordflow\">case</span> 8 :</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">return</span> GeometryTypes::hexahedron;</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> default :</div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"3d elements with "</span> << vertices << <span class=\"stringliteral\">" corners are not supported!"</span>);</div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> }</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> default :</div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> DUNE_THROW(NotImplemented, <span class=\"stringliteral\">"geometryTypeFromVertexCount works only up to dim=3"</span>);</div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> }</div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span>}</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> </div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <cstddef></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/indices.hh></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/hybridutilities.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00227.html\">type.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span>{</div>\n+<div class=\"foldopen\" id=\"foldopen00024\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html\"> 24</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01379.html\">LocalGeometryTypeIndex</a></div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> {</div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t regular_size(std::size_t dim)</div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> {</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"comment\">// The following expression is derived from the expression for</span></div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"comment\">// GlobalGeometryTypeIndex::regular_offset(). Subtracting</span></div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// regular_offset(dim+1)-regular_offset(dim) we get:</span></div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// ((1 << dim+1) >> 1) - ((1 << dim) >> 1)</span></div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"comment\">// We always have</span></div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"comment\">// dim >= 0,</span></div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">// so</span></div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"comment\">// (1 << dim+1) >= 2 and (1 << dim+2) % 2 == 0.</span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"comment\">// So if we apply a single right-shift to that, we will never lose any</span></div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> <span class=\"comment\">// set bits, thus</span></div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"comment\">// ((1 << dim+1) >> 1) == (1 << dim)</span></div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keywordflow\">return</span> (1 << dim) - ((1 << dim) >> 1);</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> }</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\"> 61</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\">size</a>(std::size_t dim)</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> {</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"comment\">// one for "none"</span></div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keywordflow\">return</span> regular_size(dim) + 1;</div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00073\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\"> 73</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &gt)</div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> {</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keywordflow\">return</span> gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>() ? regular_size(gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()) : (gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() >> 1);</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00079\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\"> 79</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">type</a>(std::size_t dim, std::size_t <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a>) {</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordflow\">return</span> (<a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a> == regular_size(dim)) ?</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> GeometryTypes::none(dim) :</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"comment\">// the cast to unsigned makes sure this is interpreted as the topology</span></div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"comment\">// ID constructor</span></div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(<span class=\"keyword\">static_cast<</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <span class=\"keyword\">></span>(<a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a> << 1), dim);</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00089\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html\"> 89</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01383.html\">GlobalGeometryTypeIndex</a></div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t regular_offset(std::size_t dim)</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> {</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"comment\">// The number of regular geometry types in a given dimension is</span></div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"comment\">// 2^(dim-1). For dim==0 this would yield 1/2 geometry types (which is</span></div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"comment\">// obviously bogus, dim==0 has one regular geometry type, the point).</span></div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"comment\">// The following expression relies on 1 >> 1 == 0 to treat dim==0</span></div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"comment\">// specially.</span></div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> (1 << dim) >> 1;</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> </div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\"> 113</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(std::size_t dim)</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> {</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"comment\">// dim times "none"</span></div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> regular_offset(dim) + dim;</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00125\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\"> 125</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\">size</a>(std::size_t maxdim)</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(maxdim+1);</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00138\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\"> 138</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\">index</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &gt)</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> {</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()) + <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">LocalGeometryTypeIndex::index</a>(gt);</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> </div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">namespace </span>Impl {</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"comment\">// Map a dynamic GeometryType to a static integral_constant<GeometryType::Id, ...></span></div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dim, <span class=\"keyword\">class</span> F></div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> toGeometryTypeIdConstant(<span class=\"keyword\">const</span> GeometryType& gt, F&& f) {</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"comment\">// Transform LocalGeometryTypeIndex to GeometryType::Id</span></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keyword\">auto</span> callWithId = [&](<span class=\"keyword\">auto</span> index) {</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">auto</span> <span class=\"keywordtype\">id</span> = <a class=\"code hl_function\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">LocalGeometryTypeIndex::type</a>(dim, <span class=\"keyword\">decltype</span>(index)::value).<a class=\"code hl_function\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">toId</a>();</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"keywordflow\">return</span> f(std::integral_constant<GeometryType::Id, id>{});</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> };</div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">// switchCases needs a fallback to determine the return type.</span></div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">auto</span> fallBack = [&]() { <span class=\"keywordflow\">return</span> callWithId(Dune::Indices::_0); };</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// Iterate over all _regular_ GeometryType indices for given dimension</span></div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">auto</span> allIndices = std::make_index_sequence<<a class=\"code hl_function\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\">LocalGeometryTypeIndex::size</a>(dim)-1>{};</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">return</span> Dune::Hybrid::switchCases(allIndices, <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">LocalGeometryTypeIndex::index</a>(gt), callWithId, fallBack);</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> } <span class=\"comment\">// namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a46da773c6f7d01077322c1064037e52f\"><div class=\"ttname\"><a href=\"a00263.html#a46da773c6f7d01077322c1064037e52f\">Dune::geometryTypeFromVertexCount</a></div><div class=\"ttdeci\">GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int vertices)</div><div class=\"ttdoc\">Utility function to construct the correct geometry type given the dimension and the number of vertice...</div><div class=\"ttdef\"><b>Definition</b> typefromvertexcount.hh:17</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a4342859295e354389b20c6ab8d2092a2\"><div class=\"ttname\"><a href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">Dune::GeometryType::toId</a></div><div class=\"ttdeci\">constexpr Id toId() const</div><div class=\"ttdoc\">Create an Id representation of this GeometryType.</div><div class=\"ttdef\"><b>Definition</b> type.hh:210</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ad3c775a48d36f776a487d1221963edba\"><div class=\"ttname\"><a href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">Dune::GeometryType::isNone</a></div><div class=\"ttdeci\">constexpr bool isNone() const</div><div class=\"ttdoc\">Return true if entity is a singular of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:355</div></div>\n+<div class=\"ttc\" id=\"aa01379_html\"><div class=\"ttname\"><a href=\"a01379.html\">Dune::LocalGeometryTypeIndex</a></div><div class=\"ttdoc\">Compute per-dimension indices for geometry types.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:25</div></div>\n+<div class=\"ttc\" id=\"aa01379_html_a569502a02c4636127665f10986d7d813\"><div class=\"ttname\"><a href=\"a01379.html#a569502a02c4636127665f10986d7d813\">Dune::LocalGeometryTypeIndex::size</a></div><div class=\"ttdeci\">static constexpr std::size_t size(std::size_t dim)</div><div class=\"ttdoc\">Compute total number of geometry types for the given dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:61</div></div>\n+<div class=\"ttc\" id=\"aa01379_html_aa0f493e303702cbfce6a3078483e241b\"><div class=\"ttname\"><a href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">Dune::LocalGeometryTypeIndex::type</a></div><div class=\"ttdeci\">static constexpr GeometryType type(std::size_t dim, std::size_t index)</div><div class=\"ttdoc\">compute the geometry type for the given local index and dimension</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:79</div></div>\n+<div class=\"ttc\" id=\"aa01379_html_abe448a646f97b252203f30536a8d304f\"><div class=\"ttname\"><a href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">Dune::LocalGeometryTypeIndex::index</a></div><div class=\"ttdeci\">static constexpr std::size_t index(const GeometryType &gt)</div><div class=\"ttdoc\">Compute the index for the given geometry type within its dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:73</div></div>\n+<div class=\"ttc\" id=\"aa01383_html\"><div class=\"ttname\"><a href=\"a01383.html\">Dune::GlobalGeometryTypeIndex</a></div><div class=\"ttdoc\">Compute indices for geometry types, taking the dimension into account.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:90</div></div>\n+<div class=\"ttc\" id=\"aa01383_html_a4b56c872618c7a6e44bd17523d31ecaa\"><div class=\"ttname\"><a href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\">Dune::GlobalGeometryTypeIndex::index</a></div><div class=\"ttdeci\">static constexpr std::size_t index(const GeometryType &gt)</div><div class=\"ttdoc\">Compute the index for the given geometry type over all dimensions.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:138</div></div>\n+<div class=\"ttc\" id=\"aa01383_html_a5bdadff2a016fef44949107e41c25e7c\"><div class=\"ttname\"><a href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">Dune::GlobalGeometryTypeIndex::offset</a></div><div class=\"ttdeci\">static constexpr std::size_t offset(std::size_t dim)</div><div class=\"ttdoc\">Compute the starting index for a given dimension including irregular geometry types.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:113</div></div>\n+<div class=\"ttc\" id=\"aa01383_html_a796183678c15cd2a578a925c5bf47724\"><div class=\"ttname\"><a href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\">Dune::GlobalGeometryTypeIndex::size</a></div><div class=\"ttdeci\">static constexpr std::size_t size(std::size_t maxdim)</div><div class=\"ttdoc\">Compute total number of geometry types up to and including the given dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:125</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,79 +1,183 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n- * _\bu_\bt_\bi_\bl_\bi_\bt_\by\n-typefromvertexcount.hh\n+typeindex.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n-6#define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n+5#ifndef DUNE_GEOMETRY_TYPEINDEX_HH\n+6#define DUNE_GEOMETRY_TYPEINDEX_HH\n 7\n-8#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-9\n-10namespace _\bD_\bu_\bn_\be {\n-11\n-16 inline\n-_\b1_\b7 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt(unsigned int dim, unsigned int\n-vertices)\n-18 {\n-19 switch (dim)\n-20 {\n-21 case 0 :\n-22 return GeometryTypes::vertex;\n-23 case 1 :\n-24 return GeometryTypes::line;\n-25 case 2 :\n-26 switch (vertices) {\n-27 case 3 :\n-28 return GeometryTypes::triangle;\n-29 case 4 :\n-30 return GeometryTypes::quadrilateral;\n-31 default :\n-32 DUNE_THROW(NotImplemented, \"2d elements with \" << vertices << \" corners are\n-not supported!\");\n-33 }\n-34 case 3 :\n-35 switch (vertices) {\n-36 case 4 :\n-37 return GeometryTypes::tetrahedron;\n-38 case 5 :\n-39 return GeometryTypes::pyramid;\n-40 case 6 :\n-41 return GeometryTypes::prism;\n-42 case 8 :\n-43 return GeometryTypes::hexahedron;\n-44 default :\n-45 DUNE_THROW(NotImplemented, \"3d elements with \" << vertices << \" corners are\n-not supported!\");\n-46 }\n-47 default :\n-48 DUNE_THROW(NotImplemented, \"geometryTypeFromVertexCount works only up to\n-dim=3\");\n-49 }\n-50 }\n-51\n-52}\n-53\n-54#endif // DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH\n+14#include <cstddef>\n+15\n+16#include <dune/common/indices.hh>\n+17#include <dune/common/hybridutilities.hh>\n+18\n+19#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+20\n+21namespace _\bD_\bu_\bn_\be\n+22{\n+_\b2_\b4 class _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+25 {\n+32 inline static constexpr std::size_t regular_size(std::size_t dim)\n+33 {\n+34 // The following expression is derived from the expression for\n+35 // GlobalGeometryTypeIndex::regular_offset(). Subtracting\n+36 // regular_offset(dim+1)-regular_offset(dim) we get:\n+37 //\n+38 // ((1 << dim+1) >> 1) - ((1 << dim) >> 1)\n+39 //\n+40 // We always have\n+41 //\n+42 // dim >= 0,\n+43 //\n+44 // so\n+45 //\n+46 // (1 << dim+1) >= 2 and (1 << dim+2) % 2 == 0.\n+47 //\n+48 // So if we apply a single right-shift to that, we will never lose any\n+49 // set bits, thus\n+50 //\n+51 // ((1 << dim+1) >> 1) == (1 << dim)\n+52 return (1 << dim) - ((1 << dim) >> 1);\n+53 }\n+54\n+55 public:\n+_\b6_\b1 inline static constexpr std::size_t _\bs_\bi_\bz_\be(std::size_t dim)\n+62 {\n+63 // one for \"none\"\n+64 return regular_size(dim) + 1;\n+65 }\n+66\n+_\b7_\b3 inline static constexpr std::size_t _\bi_\bn_\bd_\be_\bx(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >)\n+74 {\n+75 return gt._\bi_\bs_\bN_\bo_\bn_\be() ? regular_size(gt._\bd_\bi_\bm()) : (gt._\bi_\bd() >> 1);\n+76 }\n+77\n+_\b7_\b9 inline static constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be(std::size_t dim, std::size_t\n+_\bi_\bn_\bd_\be_\bx) {\n+80 return (_\bi_\bn_\bd_\be_\bx == regular_size(dim)) ?\n+81 GeometryTypes::none(dim) :\n+82 // the cast to unsigned makes sure this is interpreted as the topology\n+83 // ID constructor\n+84 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(static_cast< unsigned int >(_\bi_\bn_\bd_\be_\bx << 1), dim);\n+85 }\n+86 };\n+87\n+_\b8_\b9 class _\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+90 {\n+98 inline static constexpr std::size_t regular_offset(std::size_t dim)\n+99 {\n+100 // The number of regular geometry types in a given dimension is\n+101 // 2^(dim-1). For dim==0 this would yield 1/2 geometry types (which is\n+102 // obviously bogus, dim==0 has one regular geometry type, the point).\n+103 // The following expression relies on 1 >> 1 == 0 to treat dim==0\n+104 // specially.\n+105 return (1 << dim) >> 1;\n+106 }\n+107\n+108 public:\n+_\b1_\b1_\b3 inline static constexpr std::size_t _\bo_\bf_\bf_\bs_\be_\bt(std::size_t dim)\n+114 {\n+115 // dim times \"none\"\n+116 return regular_offset(dim) + dim;\n+117 }\n+118\n+_\b1_\b2_\b5 inline static constexpr std::size_t _\bs_\bi_\bz_\be(std::size_t maxdim)\n+126 {\n+127 return _\bo_\bf_\bf_\bs_\be_\bt(maxdim+1);\n+128 }\n+129\n+_\b1_\b3_\b8 inline static constexpr std::size_t _\bi_\bn_\bd_\be_\bx(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >)\n+139 {\n+140 return _\bo_\bf_\bf_\bs_\be_\bt(gt._\bd_\bi_\bm()) + _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx(gt);\n+141 }\n+142 };\n+143\n+144 namespace Impl {\n+145\n+146 // Map a dynamic GeometryType to a static integral_constant<GeometryType::\n+Id, ...>\n+147 template<int dim, class F>\n+148 static auto toGeometryTypeIdConstant(const GeometryType& gt, F&& f) {\n+149 // Transform LocalGeometryTypeIndex to GeometryType::Id\n+150 auto callWithId = [&](auto index) {\n+151 static constexpr auto id = _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bt_\by_\bp_\be(dim, decltype\n+(index)::value)._\bt_\bo_\bI_\bd();\n+152 return f(std::integral_constant<GeometryType::Id, id>{});\n+153 };\n+154 // switchCases needs a fallback to determine the return type.\n+155 auto fallBack = [&]() { return callWithId(Dune::Indices::_0); };\n+156 // Iterate over all _regular_ GeometryType indices for given dimension\n+157 auto allIndices = std::make_index_sequence<_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n+(dim)-1>{};\n+158 return Dune::Hybrid::switchCases(allIndices, _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+(gt), callWithId, fallBack);\n+159 }\n+160\n+161 } // namespace Impl\n+162} // namespace Dune\n+163\n+164#endif // DUNE_GEOMETRY_TYPEINDEX_HH\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bF_\br_\bo_\bm_\bV_\be_\br_\bt_\be_\bx_\bC_\bo_\bu_\bn_\bt\n-GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int\n-vertices)\n-Utility function to construct the correct geometry type given the dimension and\n-the number of vertice...\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typefromvertexcount.hh:17\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bt_\bo_\bI_\bd\n+constexpr Id toId() const\n+Create an Id representation of this GeometryType.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:210\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n+constexpr unsigned int dim() const\n+Return dimension of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n+constexpr unsigned int id() const\n+Return the topology id of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bN_\bo_\bn_\be\n+constexpr bool isNone() const\n+Return true if entity is a singular of any dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:355\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+Compute per-dimension indices for geometry types.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:25\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n+static constexpr std::size_t size(std::size_t dim)\n+Compute total number of geometry types for the given dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:61\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bt_\by_\bp_\be\n+static constexpr GeometryType type(std::size_t dim, std::size_t index)\n+compute the geometry type for the given local index and dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:79\n+_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+static constexpr std::size_t index(const GeometryType >)\n+Compute the index for the given geometry type within its dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:73\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+Compute indices for geometry types, taking the dimension into account.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:90\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+static constexpr std::size_t index(const GeometryType >)\n+Compute the index for the given geometry type over all dimensions.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:138\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bo_\bf_\bf_\bs_\be_\bt\n+static constexpr std::size_t offset(std::size_t dim)\n+Compute the starting index for a given dimension including irregular geometry\n+types.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:113\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n+static constexpr std::size_t size(std::size_t maxdim)\n+Compute total number of geometry types up to and including the given dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:125\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00224.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00224.html", "unified_diff": "@@ -83,17 +83,17 @@\n <code>#include <functional></code><br />\n <code>#include <iterator></code><br />\n <code>#include <limits></code><br />\n <code>#include <vector></code><br />\n <code>#include <dune/common/fmatrix.hh></code><br />\n <code>#include <dune/common/fvector.hh></code><br />\n <code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n <code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00224_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01139.html\">Dune::MultiLinearGeometryTraits< ct ></a></td></tr>\n <tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">default traits class for <a class=\"el\" href=\"a01151.html\" title=\"generic geometry implementation based on corner coordinates\">MultiLinearGeometry</a> <a href=\"a01139.html#details\">More...</a><br /></td></tr>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00224_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00224_source.html", "unified_diff": "@@ -94,17 +94,17 @@\n <div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <limits></span></div>\n <div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <vector></span></div>\n <div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n <div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n <div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n <div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n <div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00170.html\">dune/geometry/affinegeometry.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00191.html\">dune/geometry/affinegeometry.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n <div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n <div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span>{</div>\n <div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n <div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"comment\">// MultiLinearGeometryTraits</span></div>\n <div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"comment\">// -------------------------</span></div>\n <div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> </div>\n@@ -816,17 +816,17 @@\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n-<div class=\"ttc\" id=\"aa00170_html\"><div class=\"ttname\"><a href=\"a00170.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00191_html\"><div class=\"ttname\"><a href=\"a00191.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n <div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n <div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n <div class=\"ttc\" id=\"aa01139_html\"><div class=\"ttname\"><a href=\"a01139.html\">Dune::MultiLinearGeometryTraits</a></div><div class=\"ttdoc\">default traits class for MultiLinearGeometry</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:39</div></div>\n <div class=\"ttc\" id=\"aa01139_html_a33066d17e8f779768e95212c2139ddc7\"><div class=\"ttname\"><a href=\"a01139.html#a33066d17e8f779768e95212c2139ddc7\">Dune::MultiLinearGeometryTraits::MatrixHelper</a></div><div class=\"ttdeci\">Impl::FieldMatrixHelper< ct > MatrixHelper</div><div class=\"ttdoc\">helper structure containing some matrix routines</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:58</div></div>\n <div class=\"ttc\" id=\"aa01139_html_a8a968879ecbe2ab2f571b07faddbc92e\"><div class=\"ttname\"><a href=\"a01139.html#a8a968879ecbe2ab2f571b07faddbc92e\">Dune::MultiLinearGeometryTraits::tolerance</a></div><div class=\"ttdeci\">static ct tolerance()</div><div class=\"ttdoc\">tolerance to numerical algorithms</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:61</div></div>\n <div class=\"ttc\" id=\"aa01143_html\"><div class=\"ttname\"><a href=\"a01143.html\">Dune::MultiLinearGeometryTraits::CornerStorage</a></div><div class=\"ttdoc\">template specifying the storage for the corners</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:129</div></div>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -713,19 +713,19 @@\n 939 ++cit;\n 940 return true;\n 941 }\n 942\n 943} // namespace Dune\n 944\n 945#endif // #ifndef DUNE_GEOMETRY_MULTILINEARGEOMETRY_HH\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n An implementation of the Geometry interface for affine geometries.\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n Class providing access to the singletons of the reference elements.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n typename Container::ReferenceElement ReferenceElement\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00227.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00227.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: typeindex.hh File Reference</title>\n+<title>dune-geometry: type.hh File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -71,44 +71,54 @@\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">typeindex.hh File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">type.hh File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p>Helper classes to provide indices for geometrytypes for use in a vector. \n+<p>A unique label for each type of element that can occur in a grid. \n <a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <cstddef></code><br />\n-<code>#include <dune/common/indices.hh></code><br />\n-<code>#include <dune/common/hybridutilities.hh></code><br />\n-<code>#include "<a class=\"el\" href=\"a00173_source.html\">type.hh</a>"</code><br />\n+<div class=\"textblock\"><code>#include <cassert></code><br />\n+<code>#include <cstdint></code><br />\n+<code>#include <string></code><br />\n+<code>#include <type_traits></code><br />\n+<code>#include <dune/common/exceptions.hh></code><br />\n+<code>#include <dune/common/typetraits.hh></code><br />\n+<code>#include <dune/common/unused.hh></code><br />\n </div>\n <p><a href=\"a00227_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01379.html\">Dune::LocalGeometryTypeIndex</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute per-dimension indices for geometry types. <a href=\"a01379.html#details\">More...</a><br /></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01383.html\">Dune::GlobalGeometryTypeIndex</a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute indices for geometry types, taking the dimension into account. <a href=\"a01383.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01367.html\">Dune::GeometryType</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Unique label for each type of entities that can occur in DUNE grids. <a href=\"a01367.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00275\" id=\"r_a00275\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00275.html\">Dune::GeometryTypes</a></td></tr>\n+<tr class=\"memdesc:a00275\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Predefined <a class=\"el\" href=\"a00275.html\" title=\"Predefined GeometryTypes for common geometries.\">GeometryTypes</a> for common geometries. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n+Functions</h2></td></tr>\n+<tr class=\"memitem:a925707539f34b98f2c6ea44b0a81b8c5\" id=\"r_a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">std::ostream & </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">Dune::operator<<</a> (std::ostream &s, const <a class=\"el\" href=\"a01367.html\">GeometryType</a> &a)</td></tr>\n+<tr class=\"memdesc:a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Prints the type to an output stream. <br /></td></tr>\n+<tr class=\"separator:a925707539f34b98f2c6ea44b0a81b8c5\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>Helper classes to provide indices for geometrytypes for use in a vector. </p>\n+<div class=\"textblock\"><p>A unique label for each type of element that can occur in a grid. </p>\n </div></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,30 +1,36 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-typeindex.hh File Reference\n-Helper classes to provide indices for geometrytypes for use in a vector.\n-_\bM_\bo_\br_\be_\b._\b._\b.\n-#include <cstddef>\n-#include <dune/common/indices.hh>\n-#include <dune/common/hybridutilities.hh>\n-#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+type.hh File Reference\n+A unique label for each type of element that can occur in a grid. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <cassert>\n+#include <cstdint>\n+#include <string>\n+#include <type_traits>\n+#include <dune/common/exceptions.hh>\n+#include <dune/common/typetraits.hh>\n+#include <dune/common/unused.hh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n-\u00a0 Compute per-dimension indices for geometry types. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n-\u00a0 Compute indices for geometry types, taking the dimension into account.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+\u00a0 Unique label for each type of entities that can occur in DUNE grids.\n _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bs\n+\u00a0 Predefined _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bs for common geometries.\n+\u00a0\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+std::ostream &\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b< (std::ostream &s, const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be &a)\n+\u00a0 Prints the type to an output stream.\n+\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Helper classes to provide indices for geometrytypes for use in a vector.\n+A unique label for each type of element that can occur in a grid.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00227_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00227_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: typeindex.hh Source File</title>\n+<title>dune-geometry: type.hh Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,161 +74,477 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">typeindex.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">type.hh</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00227.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TYPE_HH</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TYPE_HH</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <cstddef></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/indices.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/hybridutilities.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00173.html\">type.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span>{</div>\n-<div class=\"foldopen\" id=\"foldopen00024\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html\"> 24</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01379.html\">LocalGeometryTypeIndex</a></div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> {</div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t regular_size(std::size_t dim)</div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> {</div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"comment\">// The following expression is derived from the expression for</span></div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"comment\">// GlobalGeometryTypeIndex::regular_offset(). Subtracting</span></div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// regular_offset(dim+1)-regular_offset(dim) we get:</span></div>\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// ((1 << dim+1) >> 1) - ((1 << dim) >> 1)</span></div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"comment\">// We always have</span></div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"comment\">// dim >= 0,</span></div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">// so</span></div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span> <span class=\"comment\">// (1 << dim+1) >= 2 and (1 << dim+2) % 2 == 0.</span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"comment\">// So if we apply a single right-shift to that, we will never lose any</span></div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> <span class=\"comment\">// set bits, thus</span></div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"comment\">// ((1 << dim+1) >> 1) == (1 << dim)</span></div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keywordflow\">return</span> (1 << dim) - ((1 << dim) >> 1);</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> }</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\"> 61</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\">size</a>(std::size_t dim)</div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> {</div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> <span class=\"comment\">// one for "none"</span></div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keywordflow\">return</span> regular_size(dim) + 1;</div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00073\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\"> 73</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &gt)</div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> {</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keywordflow\">return</span> gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>() ? regular_size(gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()) : (gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() >> 1);</div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00079\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\"> 79</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">type</a>(std::size_t dim, std::size_t <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a>) {</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordflow\">return</span> (<a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a> == regular_size(dim)) ?</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> GeometryTypes::none(dim) :</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"comment\">// the cast to unsigned makes sure this is interpreted as the topology</span></div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"comment\">// ID constructor</span></div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(<span class=\"keyword\">static_cast<</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <span class=\"keyword\">></span>(<a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a> << 1), dim);</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00089\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html\"> 89</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01383.html\">GlobalGeometryTypeIndex</a></div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t regular_offset(std::size_t dim)</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> {</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"comment\">// The number of regular geometry types in a given dimension is</span></div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"comment\">// 2^(dim-1). For dim==0 this would yield 1/2 geometry types (which is</span></div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"comment\">// obviously bogus, dim==0 has one regular geometry type, the point).</span></div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"comment\">// The following expression relies on 1 >> 1 == 0 to treat dim==0</span></div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"comment\">// specially.</span></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keywordflow\">return</span> (1 << dim) >> 1;</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> }</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> </div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\"> 113</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(std::size_t dim)</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> {</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"comment\">// dim times "none"</span></div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> regular_offset(dim) + dim;</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00125\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\"> 125</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\">size</a>(std::size_t maxdim)</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(maxdim+1);</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00138\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\"> 138</a></span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> std::size_t <a class=\"code hl_function\" href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\">index</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> &gt)</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> {</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()) + <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">LocalGeometryTypeIndex::index</a>(gt);</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> </div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">namespace </span>Impl {</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"comment\">// Map a dynamic GeometryType to a static integral_constant<GeometryType::Id, ...></span></div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dim, <span class=\"keyword\">class</span> F></div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> toGeometryTypeIdConstant(<span class=\"keyword\">const</span> GeometryType& gt, F&& f) {</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"comment\">// Transform LocalGeometryTypeIndex to GeometryType::Id</span></div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keyword\">auto</span> callWithId = [&](<span class=\"keyword\">auto</span> index) {</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">auto</span> <span class=\"keywordtype\">id</span> = <a class=\"code hl_function\" href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">LocalGeometryTypeIndex::type</a>(dim, <span class=\"keyword\">decltype</span>(index)::value).<a class=\"code hl_function\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">toId</a>();</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"keywordflow\">return</span> f(std::integral_constant<GeometryType::Id, id>{});</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> };</div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">// switchCases needs a fallback to determine the return type.</span></div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">auto</span> fallBack = [&]() { <span class=\"keywordflow\">return</span> callWithId(Dune::Indices::_0); };</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// Iterate over all _regular_ GeometryType indices for given dimension</span></div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">auto</span> allIndices = std::make_index_sequence<<a class=\"code hl_function\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\">LocalGeometryTypeIndex::size</a>(dim)-1>{};</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">return</span> Dune::Hybrid::switchCases(allIndices, <a class=\"code hl_function\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">LocalGeometryTypeIndex::index</a>(gt), callWithId, fallBack);</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> } <span class=\"comment\">// namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPEINDEX_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <cstdint></span></div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span> </div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <string></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span> </div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <dune/common/unused.hh></span></div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span>{</div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> </div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span> <span class=\"keyword\">namespace </span>Impl</div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> {</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> </div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"keyword\">enum</span> TopologyConstruction { pyramidConstruction = 0, prismConstruction = 1 };</div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> </div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Dynamic Topology Properties</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">// ---------------------------</span></div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numTopologies ( <span class=\"keywordtype\">int</span> dim ) <span class=\"keyword\">noexcept</span></div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keywordflow\">return</span> (1u << dim);</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> }</div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">inline</span> <span class=\"keywordtype\">bool</span> <span class=\"keyword\">static</span> isPyramid ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 0 ) noexcept</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> {</div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> assert( (dim > 0) && (topologyId < numTopologies( dim )) );</div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> assert( (0 <= codim) && (codim < dim) );</div>\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> <span class=\"keywordflow\">return</span> (((topologyId & ~1) & (1u << (dim-codim-1))) == 0);</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> }</div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">bool</span> isPrism ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 0 ) noexcept</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> {</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> assert( (dim > 0) && (topologyId < numTopologies( dim )) );</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> assert( (0 <= codim) && (codim < dim) );</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keywordflow\">return</span> (( (topologyId | 1) & (1u << (dim-codim-1))) != 0);</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> }</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> baseTopologyId ( <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">int</span> dim, <span class=\"keywordtype\">int</span> codim = 1 ) noexcept</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> {</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> assert( (dim >= 0) && (topologyId < numTopologies( dim )) );</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> assert( (0 <= codim) && (codim <= dim) );</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keywordflow\">return</span> topologyId & ((1u << (dim-codim)) - 1);</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> }</div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> </div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> } <span class=\"comment\">// namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> </div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"comment\">// GeometryType</span></div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"comment\">// -------------</span></div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html\"> 113</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a></div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> {</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00119\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\"> 119</a></span> <span class=\"keyword\">enum</span></div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <a class=\"code hl_enumeration\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">BasicType</a> {</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\"> 121</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\">simplex</a>, </div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\"> 122</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\">cube</a>, </div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\"> 123</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\">pyramid</a>, </div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\"> 124</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\">prism</a>, </div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\"> 125</a></span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\">extended</a>, </div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <a class=\"code hl_enumvalue\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\">none</a> </div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\"> 127</a></span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">char</span> dim_;</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> </div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keywordtype\">bool</span> none_;</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> </div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId_;</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> </div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"comment\">// Internal type used for the Id. The exact nature of this type is kept</span></div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"comment\">// as an implementation detail on purpose. We use a scoped enum here because scoped enums</span></div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"comment\">// can be used as template parameters, but are not implicitly converted to other integral</span></div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"comment\">// types by the compiler. That way, we avoid unfortunate implicit conversion chains, e.g.</span></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"comment\">// people trying to work with GlobalGeometryTypeIndex, but forgetting to actually call</span></div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"comment\">// GlobalGeometryTypeIndex::index(gt) and just using gt directly.</span></div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">enum class</span> IdType : std::uint64_t</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {};</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> </div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\"> 181</a></span> <span class=\"keyword\">using </span>Id = IdType;</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00190\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a76fa3040aad4348d2eec058aa67d3b76\"> 190</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">operator</span> <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">Id</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"comment\">// recreate the exact storage layout that this class is using, making conversion</span></div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"comment\">// extremely cheap</span></div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> std::uint64_t <span class=\"keywordtype\">id</span> = dim_ | (std::uint64_t(none_) << 8) | (std::uint64_t(topologyId_) << 32);</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span>Id<span class=\"keyword\">></span>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>);</div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00210\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\"> 210</a></span> <span class=\"keyword\">constexpr</span> Id <a class=\"code hl_function\" href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">toId</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span>Id<span class=\"keyword\">></span>(*this);</div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00222\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\"> 222</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\">GeometryType</a>(Id <span class=\"keywordtype\">id</span>)</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> : dim_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) & 0xFF)</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> , none_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) & 0x100)</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> , topologyId_(static_cast<<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::uint64_t>(<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>) >> 32)</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> </div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00232\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\"> 232</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\">GeometryType</a> ()</div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> : dim_(0), none_(true), topologyId_(0)</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00242\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\"> 242</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\">GeometryType</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>, <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>)</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> : dim_(<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>), none_(<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>), topologyId_(topologyId)</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00251\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\"> 251</a></span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_function\" href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\">GeometryType</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>)</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> : dim_(<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>), none_(false), topologyId_(topologyId)</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class </span>TopologyType,</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">class </span>= std::void_t<<span class=\"keyword\">decltype</span>(TopologyType::dimension), <span class=\"keyword\">decltype</span>(TopologyType::id)>></div>\n+<div class=\"foldopen\" id=\"foldopen00267\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\"> 267</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\">GeometryType</a>(TopologyType t)</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> : dim_(TopologyType::dimension), none_(false), topologyId_(TopologyType::<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>)</div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> {</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> DUNE_UNUSED_PARAMETER(t);</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00279\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\"> 279</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">isVertex</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">return</span> dim_==0;</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00284\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\"> 284</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">isLine</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">return</span> dim_==1;</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00289\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\"> 289</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\">isTriangle</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==2 && (topologyId_ | 1) == 0b0001;</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00294\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\"> 294</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\">isQuadrilateral</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==2 && (topologyId_ | 1) == 0b0011;</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00299\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\"> 299</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\">isTetrahedron</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0001;</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00304\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\"> 304</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">isPyramid</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0011;</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00309\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\"> 309</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0101;</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00314\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\"> 314</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\">isHexahedron</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> ! none_ && dim_==3 && (topologyId_ | 1) == 0b0111;</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\"> 319</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keywordflow\">return</span> ! none_ && (topologyId_ | 1) == 1;</div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00324\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\"> 324</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">isCube</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">return</span> ! none_ && ((topologyId_ ^ ((1 << dim_)-1)) >> 1 == 0);</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00329\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\"> 329</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\">isConical</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keywordflow\">return</span> ! none_ && (((topologyId_ & ~1) & (1u << (dim_-1))) == 0);</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00337\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\"> 337</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\">isConical</a>(<span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span>& step)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> ! none_ && (((topologyId_ & ~1) & (1u << step)) == 0);</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00342\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\"> 342</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\">isPrismatic</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keywordflow\">return</span> ! none_ && (( (topologyId_ | 1) & (1u << (dim_-1))) != 0);</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00350\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\"> 350</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\">isPrismatic</a>(<span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span>& step)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"keywordflow\">return</span> ! none_ && (( (topologyId_ | 1) & (1u << step)) != 0);</div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00355\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\"> 355</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keywordflow\">return</span> none_;</div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00360\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\"> 360</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> dim_;</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00365\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\"> 365</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>()<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keywordflow\">return</span> topologyId_;</div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> </div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00377\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\"> 377</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\">operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keywordflow\">return</span> ( ( none_ == other.none_ )</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> && ( ( none_ == <span class=\"keyword\">true</span> )</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> || ( ( dim_ == other.dim_ )</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> && ( (topologyId_ >> 1) == (other.topologyId_ >> 1) )</div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> )</div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> )</div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> );</div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00388\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\"> 388</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\">operator!=</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keywordflow\">return</span> ! ((*this)==other);</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00393\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\"> 393</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\">operator < </a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& other)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keywordflow\">return</span> ( ( none_ < other.none_ )</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> || ( !( other.none_ < none_ )</div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> && ( ( dim_ < other.dim_ )</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> || ( (other.dim_ == dim_)</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> && ((topologyId_ >> 1) < (other.topologyId_ >> 1) )</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> )</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> )</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> )</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> );</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> </div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00410\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\"> 410</a></span> <span class=\"keyword\">inline</span> std::ostream& <a class=\"code hl_function\" href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">operator<< </a>(std::ostream& s, <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& a)</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> {</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> {</div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> s << <span class=\"stringliteral\">"(simplex, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">isCube</a>())</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> {</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> s << <span class=\"stringliteral\">"(cube, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> }</div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">isPyramid</a>())</div>\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> {</div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> s << <span class=\"stringliteral\">"(pyramid, 3)"</span>;</div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> }</div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">isPrism</a>())</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> {</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> s << <span class=\"stringliteral\">"(prism, 3)"</span>;</div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> }</div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keywordflow\">if</span> (a.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>())</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> {</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> s << <span class=\"stringliteral\">"(none, "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> }</div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> s << <span class=\"stringliteral\">"(other ["</span> << a.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() << <span class=\"stringliteral\">"], "</span> << a.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() << <span class=\"stringliteral\">")"</span>;</div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keywordflow\">return</span> s;</div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> </div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> </div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00447\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00275.html\"> 447</a></span> <span class=\"keyword\">namespace </span>GeometryTypes {</div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> </div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> simplex(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> {</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,dim,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> }</div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> </div>\n+<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> </div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> cube(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> {</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(((dim>1) ? ((1 << dim) - 1) : 0),dim,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> }</div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> </div>\n+<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> </div>\n+<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> none(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> dim)</div>\n+<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> {</div>\n+<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,dim,<span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> }</div>\n+<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> </div>\n+<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> conicalExtension(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt)</div>\n+<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n+<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()+1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n+<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> }</div>\n+<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> </div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> prismaticExtension(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt)</div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> {</div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() | ((1 << gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>())), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()+1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> }</div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> </div>\n+<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> </div>\n+<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"> 492</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> vertex = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,0,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> </div>\n+<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> </div>\n+<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> line = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0,1,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> </div>\n+<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> </div>\n+<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> triangle = simplex(2);</div>\n+<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> </div>\n+<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> </div>\n+<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> quadrilateral = cube(2);</div>\n+<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> </div>\n+<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> </div>\n+<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> tetrahedron = simplex(3);</div>\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> </div>\n+<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> </div>\n+<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"> 522</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> pyramid = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0b0011,3,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> </div>\n+<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> </div>\n+<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> prism = <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(0b0101,3,<span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> </div>\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> </div>\n+<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> hexahedron = cube(3);</div>\n+<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> </div>\n+<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> </div>\n+<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keyword\">namespace </span>Impl</div>\n+<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> {</div>\n+<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> </div>\n+<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> <span class=\"keyword\">inline</span> <span class=\"keyword\">constexpr</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> getBase(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>& gt) {</div>\n+<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"> 543</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>(gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() & ((1 << (gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()-1))-1), gt.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>()-1, gt.<a class=\"code hl_function\" href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">isNone</a>());</div>\n+<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"> 544</span> }</div>\n+<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> </div>\n+<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> </div>\n+<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span> <span class=\"comment\">// IfGeometryType</span></div>\n+<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> <span class=\"comment\">// ----------</span></div>\n+<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> </div>\n+<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">template</span>< GeometryType::Id > <span class=\"keyword\">class </span>Operation, <span class=\"keywordtype\">int</span> dim, <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">GeometryType::Id</a> geometryId = GeometryTypes::vertex ></div>\n+<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keyword\">struct </span>IfGeometryType</div>\n+<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> {</div>\n+<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> GeometryType geometry = geometryId;</div>\n+<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span>... Args ></div>\n+<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> apply ( GeometryType gt, Args &&... args )</div>\n+<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> {</div>\n+<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> GeometryType lowerGeometry(gt.id() >>1 , gt.dim()-1, gt.isNone());</div>\n+<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> </div>\n+<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keywordflow\">if</span>( gt.id() & 1 )</div>\n+<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> <span class=\"keywordflow\">return</span> IfGeometryType< Operation, dim-1, GeometryTypes::prismaticExtension(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );</div>\n+<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> <span class=\"keywordflow\">return</span> IfGeometryType< Operation, dim-1, GeometryTypes::conicalExtension(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );</div>\n+<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> }</div>\n+<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> };</div>\n+<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span> </div>\n+<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">template</span>< GeometryType::Id > <span class=\"keyword\">class </span>Operation, <a class=\"code hl_typedef\" href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">GeometryType::Id</a> geometryId ></div>\n+<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"> 567</span> <span class=\"keyword\">struct </span>IfGeometryType< Operation, 0, geometryId></div>\n+<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> {</div>\n+<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span>... Args ></div>\n+<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> apply ([[maybe_unused]] GeometryType gt, Args &&... args )</div>\n+<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> {</div>\n+<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> <span class=\"keywordflow\">return</span> Operation< geometryId >::apply( std::forward< Args >( args )... );</div>\n+<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> }</div>\n+<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> };</div>\n+<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> } <span class=\"comment\">// namespace Impl</span></div>\n+<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> </div>\n+<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_TYPE_HH</span></div>\n+<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a925707539f34b98f2c6ea44b0a81b8c5\"><div class=\"ttname\"><a href=\"a00263.html#a925707539f34b98f2c6ea44b0a81b8c5\">Dune::operator<<</a></div><div class=\"ttdeci\">std::ostream & operator<<(std::ostream &s, const GeometryType &a)</div><div class=\"ttdoc\">Prints the type to an output stream.</div><div class=\"ttdef\"><b>Definition</b> type.hh:410</div></div>\n <div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a0a6121458c1b591743c17016e9f74805\"><div class=\"ttname\"><a href=\"a01367.html#a0a6121458c1b591743c17016e9f74805\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(unsigned int topologyId, unsigned int dim)</div><div class=\"ttdoc\">Constructor, using the topologyId (integer) and the dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:251</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a0ad010a872711290661eff8d02cd8e2b\"><div class=\"ttname\"><a href=\"a01367.html#a0ad010a872711290661eff8d02cd8e2b\">Dune::GeometryType::operator<</a></div><div class=\"ttdeci\">constexpr bool operator<(const GeometryType &other) const</div><div class=\"ttdoc\">less-than operation for use with maps</div><div class=\"ttdef\"><b>Definition</b> type.hh:393</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a182670272d26c1d272bbeb12695d4c43\"><div class=\"ttname\"><a href=\"a01367.html#a182670272d26c1d272bbeb12695d4c43\">Dune::GeometryType::operator!=</a></div><div class=\"ttdeci\">constexpr bool operator!=(const GeometryType &other) const</div><div class=\"ttdoc\">Check for inequality.</div><div class=\"ttdef\"><b>Definition</b> type.hh:388</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a250165622002c2e50ec3499b753e4412\"><div class=\"ttname\"><a href=\"a01367.html#a250165622002c2e50ec3499b753e4412\">Dune::GeometryType::isPyramid</a></div><div class=\"ttdeci\">constexpr bool isPyramid() const</div><div class=\"ttdoc\">Return true if entity is a pyramid.</div><div class=\"ttdef\"><b>Definition</b> type.hh:304</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a3395c779d9223ca7d98a9e13d4d61e43\"><div class=\"ttname\"><a href=\"a01367.html#a3395c779d9223ca7d98a9e13d4d61e43\">Dune::GeometryType::isTetrahedron</a></div><div class=\"ttdeci\">constexpr bool isTetrahedron() const</div><div class=\"ttdoc\">Return true if entity is a tetrahedron.</div><div class=\"ttdef\"><b>Definition</b> type.hh:299</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a348e00bac645649b4694a3b03a87b7d8\"><div class=\"ttname\"><a href=\"a01367.html#a348e00bac645649b4694a3b03a87b7d8\">Dune::GeometryType::isPrism</a></div><div class=\"ttdeci\">constexpr bool isPrism() const</div><div class=\"ttdoc\">Return true if entity is a prism.</div><div class=\"ttdef\"><b>Definition</b> type.hh:309</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a3529c9ae0ad0d9fa97c413bfda66851f\"><div class=\"ttname\"><a href=\"a01367.html#a3529c9ae0ad0d9fa97c413bfda66851f\">Dune::GeometryType::isVertex</a></div><div class=\"ttdeci\">constexpr bool isVertex() const</div><div class=\"ttdoc\">Return true if entity is a vertex.</div><div class=\"ttdef\"><b>Definition</b> type.hh:279</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a38b36ecdb5b04c3652f1979b0bf4ed5c\"><div class=\"ttname\"><a href=\"a01367.html#a38b36ecdb5b04c3652f1979b0bf4ed5c\">Dune::GeometryType::operator==</a></div><div class=\"ttdeci\">constexpr bool operator==(const GeometryType &other) const</div><div class=\"ttdoc\">Check for equality. This method knows that in dimension 0 and 1 all BasicTypes are equal.</div><div class=\"ttdef\"><b>Definition</b> type.hh:377</div></div>\n <div class=\"ttc\" id=\"aa01367_html_a4342859295e354389b20c6ab8d2092a2\"><div class=\"ttname\"><a href=\"a01367.html#a4342859295e354389b20c6ab8d2092a2\">Dune::GeometryType::toId</a></div><div class=\"ttdeci\">constexpr Id toId() const</div><div class=\"ttdoc\">Create an Id representation of this GeometryType.</div><div class=\"ttdef\"><b>Definition</b> type.hh:210</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a4828ba864fc7f41632ed821d8adf268b\"><div class=\"ttname\"><a href=\"a01367.html#a4828ba864fc7f41632ed821d8adf268b\">Dune::GeometryType::isConical</a></div><div class=\"ttdeci\">constexpr bool isConical(const int &step) const</div><div class=\"ttdoc\">Return true if entity was constructed with a conical product in the chosen step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:337</div></div>\n <div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a494c1901eb6e39ef60a806c12aac8fc1\"><div class=\"ttname\"><a href=\"a01367.html#a494c1901eb6e39ef60a806c12aac8fc1\">Dune::GeometryType::isPrismatic</a></div><div class=\"ttdeci\">constexpr bool isPrismatic(const int &step) const</div><div class=\"ttdoc\">Return true if entity was constructed with a prismatic product in the chosen step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:350</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a4bd256c5de347ec02d3b7676564e0921\"><div class=\"ttname\"><a href=\"a01367.html#a4bd256c5de347ec02d3b7676564e0921\">Dune::GeometryType::isTriangle</a></div><div class=\"ttdeci\">constexpr bool isTriangle() const</div><div class=\"ttdoc\">Return true if entity is a triangle.</div><div class=\"ttdef\"><b>Definition</b> type.hh:289</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a5827e50f4af5e42d632d2be548eef6fa\"><div class=\"ttname\"><a href=\"a01367.html#a5827e50f4af5e42d632d2be548eef6fa\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">GeometryType(TopologyType t)</div><div class=\"ttdoc\">Constructor from static TopologyType class.</div><div class=\"ttdef\"><b>Definition</b> type.hh:267</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a8df6ab7f7f3e87a75cbb1f3ad3528a14\"><div class=\"ttname\"><a href=\"a01367.html#a8df6ab7f7f3e87a75cbb1f3ad3528a14\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(unsigned int topologyId, unsigned int dim, bool isNone)</div><div class=\"ttdoc\">Constructor, using the topologyId (integer), the dimension and a flag for type none.</div><div class=\"ttdef\"><b>Definition</b> type.hh:242</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">Dune::GeometryType::BasicType</a></div><div class=\"ttdeci\">BasicType</div><div class=\"ttdoc\">Each entity can be tagged by one of these basic types plus its space dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:120</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\">Dune::GeometryType::cube</a></div><div class=\"ttdeci\">@ cube</div><div class=\"ttdoc\">Cube element in any nonnegative dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:122</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\">Dune::GeometryType::simplex</a></div><div class=\"ttdeci\">@ simplex</div><div class=\"ttdoc\">Simplicial element in any nonnegative dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:121</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\">Dune::GeometryType::pyramid</a></div><div class=\"ttdeci\">@ pyramid</div><div class=\"ttdoc\">Four sided pyramid in three dimensions.</div><div class=\"ttdef\"><b>Definition</b> type.hh:123</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a35db41ff85b61d6434bd6cd4e4a33c70\">Dune::GeometryType::extended</a></div><div class=\"ttdeci\">@ extended</div><div class=\"ttdoc\">Other, more general topology, representable as topologyId.</div><div class=\"ttdef\"><b>Definition</b> type.hh:125</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a6b30da5cd911e792cc6d843ed944aa76\">Dune::GeometryType::none</a></div><div class=\"ttdeci\">@ none</div><div class=\"ttdoc\">Even more general topology, cannot be specified by a topologyId. Two GeometryTypes with 'none' type a...</div><div class=\"ttdef\"><b>Definition</b> type.hh:126</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\"><div class=\"ttname\"><a href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\">Dune::GeometryType::prism</a></div><div class=\"ttdeci\">@ prism</div><div class=\"ttdoc\">Prism element in three dimensions.</div><div class=\"ttdef\"><b>Definition</b> type.hh:124</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a98fed1bc9a98365ffa6f8880b2ed6934\"><div class=\"ttname\"><a href=\"a01367.html#a98fed1bc9a98365ffa6f8880b2ed6934\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType(Id id)</div><div class=\"ttdoc\">Reconstruct a Geometry type from a GeometryType::Id.</div><div class=\"ttdef\"><b>Definition</b> type.hh:222</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_aa27be83cac6455c2e050d066aceccdad\"><div class=\"ttname\"><a href=\"a01367.html#aa27be83cac6455c2e050d066aceccdad\">Dune::GeometryType::isCube</a></div><div class=\"ttdeci\">constexpr bool isCube() const</div><div class=\"ttdoc\">Return true if entity is a cube of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:324</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_aa6a68dc876e73aa8c97fa42fd0481aa6\"><div class=\"ttname\"><a href=\"a01367.html#aa6a68dc876e73aa8c97fa42fd0481aa6\">Dune::GeometryType::GeometryType</a></div><div class=\"ttdeci\">constexpr GeometryType()</div><div class=\"ttdoc\">Default constructor, not initializing anything.</div><div class=\"ttdef\"><b>Definition</b> type.hh:232</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_aabefa78f7cbdb781cf306deda9a48d4b\"><div class=\"ttname\"><a href=\"a01367.html#aabefa78f7cbdb781cf306deda9a48d4b\">Dune::GeometryType::isConical</a></div><div class=\"ttdeci\">constexpr bool isConical() const</div><div class=\"ttdoc\">Return true if entity was constructed with a conical product in the last step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:329</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ab73476cf45a8608877ddba81c514d294\"><div class=\"ttname\"><a href=\"a01367.html#ab73476cf45a8608877ddba81c514d294\">Dune::GeometryType::isLine</a></div><div class=\"ttdeci\">constexpr bool isLine() const</div><div class=\"ttdoc\">Return true if entity is a line segment.</div><div class=\"ttdef\"><b>Definition</b> type.hh:284</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_abbfc8813bd601d8118fb18deeb8cd2d9\"><div class=\"ttname\"><a href=\"a01367.html#abbfc8813bd601d8118fb18deeb8cd2d9\">Dune::GeometryType::isQuadrilateral</a></div><div class=\"ttdeci\">constexpr bool isQuadrilateral() const</div><div class=\"ttdoc\">Return true if entity is a quadrilateral.</div><div class=\"ttdef\"><b>Definition</b> type.hh:294</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ac1f9782bcf273bab34671c862062f66b\"><div class=\"ttname\"><a href=\"a01367.html#ac1f9782bcf273bab34671c862062f66b\">Dune::GeometryType::isPrismatic</a></div><div class=\"ttdeci\">constexpr bool isPrismatic() const</div><div class=\"ttdoc\">Return true if entity was constructed with a prismatic product in the last step.</div><div class=\"ttdef\"><b>Definition</b> type.hh:342</div></div>\n <div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n <div class=\"ttc\" id=\"aa01367_html_ad3c775a48d36f776a487d1221963edba\"><div class=\"ttname\"><a href=\"a01367.html#ad3c775a48d36f776a487d1221963edba\">Dune::GeometryType::isNone</a></div><div class=\"ttdeci\">constexpr bool isNone() const</div><div class=\"ttdoc\">Return true if entity is a singular of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:355</div></div>\n-<div class=\"ttc\" id=\"aa01379_html\"><div class=\"ttname\"><a href=\"a01379.html\">Dune::LocalGeometryTypeIndex</a></div><div class=\"ttdoc\">Compute per-dimension indices for geometry types.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:25</div></div>\n-<div class=\"ttc\" id=\"aa01379_html_a569502a02c4636127665f10986d7d813\"><div class=\"ttname\"><a href=\"a01379.html#a569502a02c4636127665f10986d7d813\">Dune::LocalGeometryTypeIndex::size</a></div><div class=\"ttdeci\">static constexpr std::size_t size(std::size_t dim)</div><div class=\"ttdoc\">Compute total number of geometry types for the given dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:61</div></div>\n-<div class=\"ttc\" id=\"aa01379_html_aa0f493e303702cbfce6a3078483e241b\"><div class=\"ttname\"><a href=\"a01379.html#aa0f493e303702cbfce6a3078483e241b\">Dune::LocalGeometryTypeIndex::type</a></div><div class=\"ttdeci\">static constexpr GeometryType type(std::size_t dim, std::size_t index)</div><div class=\"ttdoc\">compute the geometry type for the given local index and dimension</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:79</div></div>\n-<div class=\"ttc\" id=\"aa01379_html_abe448a646f97b252203f30536a8d304f\"><div class=\"ttname\"><a href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">Dune::LocalGeometryTypeIndex::index</a></div><div class=\"ttdeci\">static constexpr std::size_t index(const GeometryType &gt)</div><div class=\"ttdoc\">Compute the index for the given geometry type within its dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:73</div></div>\n-<div class=\"ttc\" id=\"aa01383_html\"><div class=\"ttname\"><a href=\"a01383.html\">Dune::GlobalGeometryTypeIndex</a></div><div class=\"ttdoc\">Compute indices for geometry types, taking the dimension into account.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:90</div></div>\n-<div class=\"ttc\" id=\"aa01383_html_a4b56c872618c7a6e44bd17523d31ecaa\"><div class=\"ttname\"><a href=\"a01383.html#a4b56c872618c7a6e44bd17523d31ecaa\">Dune::GlobalGeometryTypeIndex::index</a></div><div class=\"ttdeci\">static constexpr std::size_t index(const GeometryType &gt)</div><div class=\"ttdoc\">Compute the index for the given geometry type over all dimensions.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:138</div></div>\n-<div class=\"ttc\" id=\"aa01383_html_a5bdadff2a016fef44949107e41c25e7c\"><div class=\"ttname\"><a href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">Dune::GlobalGeometryTypeIndex::offset</a></div><div class=\"ttdeci\">static constexpr std::size_t offset(std::size_t dim)</div><div class=\"ttdoc\">Compute the starting index for a given dimension including irregular geometry types.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:113</div></div>\n-<div class=\"ttc\" id=\"aa01383_html_a796183678c15cd2a578a925c5bf47724\"><div class=\"ttname\"><a href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\">Dune::GlobalGeometryTypeIndex::size</a></div><div class=\"ttdeci\">static constexpr std::size_t size(std::size_t maxdim)</div><div class=\"ttdoc\">Compute total number of geometry types up to and including the given dimension.</div><div class=\"ttdef\"><b>Definition</b> typeindex.hh:125</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ae34ba85f0606201ef5156219b62196f5\"><div class=\"ttname\"><a href=\"a01367.html#ae34ba85f0606201ef5156219b62196f5\">Dune::GeometryType::isHexahedron</a></div><div class=\"ttdeci\">constexpr bool isHexahedron() const</div><div class=\"ttdoc\">Return true if entity is a hexahedron.</div><div class=\"ttdef\"><b>Definition</b> type.hh:314</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_af04ef531b52014e4e382722b54102163\"><div class=\"ttname\"><a href=\"a01367.html#af04ef531b52014e4e382722b54102163\">Dune::GeometryType::isSimplex</a></div><div class=\"ttdeci\">constexpr bool isSimplex() const</div><div class=\"ttdoc\">Return true if entity is a simplex of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:319</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_af65ff19e6d2915e0fd7db6c5329ae44e\"><div class=\"ttname\"><a href=\"a01367.html#af65ff19e6d2915e0fd7db6c5329ae44e\">Dune::GeometryType::Id</a></div><div class=\"ttdeci\">IdType Id</div><div class=\"ttdoc\">An integral id representing a GeometryType.</div><div class=\"ttdef\"><b>Definition</b> type.hh:181</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,183 +1,542 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-typeindex.hh\n+type.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_TYPEINDEX_HH\n-6#define DUNE_GEOMETRY_TYPEINDEX_HH\n+5#ifndef DUNE_GEOMETRY_TYPE_HH\n+6#define DUNE_GEOMETRY_TYPE_HH\n 7\n-14#include <cstddef>\n-15\n-16#include <dune/common/indices.hh>\n-17#include <dune/common/hybridutilities.hh>\n-18\n-19#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-20\n-21namespace _\bD_\bu_\bn_\be\n-22{\n-_\b2_\b4 class _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n-25 {\n-32 inline static constexpr std::size_t regular_size(std::size_t dim)\n-33 {\n-34 // The following expression is derived from the expression for\n-35 // GlobalGeometryTypeIndex::regular_offset(). Subtracting\n-36 // regular_offset(dim+1)-regular_offset(dim) we get:\n-37 //\n-38 // ((1 << dim+1) >> 1) - ((1 << dim) >> 1)\n-39 //\n-40 // We always have\n-41 //\n-42 // dim >= 0,\n-43 //\n-44 // so\n-45 //\n-46 // (1 << dim+1) >= 2 and (1 << dim+2) % 2 == 0.\n-47 //\n-48 // So if we apply a single right-shift to that, we will never lose any\n-49 // set bits, thus\n-50 //\n-51 // ((1 << dim+1) >> 1) == (1 << dim)\n-52 return (1 << dim) - ((1 << dim) >> 1);\n-53 }\n-54\n-55 public:\n-_\b6_\b1 inline static constexpr std::size_t _\bs_\bi_\bz_\be(std::size_t dim)\n-62 {\n-63 // one for \"none\"\n-64 return regular_size(dim) + 1;\n-65 }\n-66\n-_\b7_\b3 inline static constexpr std::size_t _\bi_\bn_\bd_\be_\bx(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >)\n-74 {\n-75 return gt._\bi_\bs_\bN_\bo_\bn_\be() ? regular_size(gt._\bd_\bi_\bm()) : (gt._\bi_\bd() >> 1);\n-76 }\n-77\n-_\b7_\b9 inline static constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be(std::size_t dim, std::size_t\n-_\bi_\bn_\bd_\be_\bx) {\n-80 return (_\bi_\bn_\bd_\be_\bx == regular_size(dim)) ?\n-81 GeometryTypes::none(dim) :\n-82 // the cast to unsigned makes sure this is interpreted as the topology\n-83 // ID constructor\n-84 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(static_cast< unsigned int >(_\bi_\bn_\bd_\be_\bx << 1), dim);\n-85 }\n-86 };\n-87\n-_\b8_\b9 class _\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n+12#include <cassert>\n+13#include <cstdint>\n+14\n+15#include <string>\n+16#include <type_traits>\n+17\n+18#include <dune/common/exceptions.hh>\n+19#include <dune/common/typetraits.hh>\n+20#include <dune/common/unused.hh>\n+21\n+22namespace _\bD_\bu_\bn_\be\n+23{\n+24\n+25 namespace Impl\n+26 {\n+27\n+28 enum TopologyConstruction { pyramidConstruction = 0, prismConstruction = 1\n+};\n+29\n+30 // Dynamic Topology Properties\n+31 // ---------------------------\n+32\n+41 inline static unsigned int numTopologies ( int dim ) noexcept\n+42 {\n+43 return (1u << dim);\n+44 }\n+45\n+57 inline bool static isPyramid ( unsigned int topologyId, int dim, int codim =\n+0 ) noexcept\n+58 {\n+59 assert( (dim > 0) && (topologyId < numTopologies( dim )) );\n+60 assert( (0 <= codim) && (codim < dim) );\n+61 return (((topologyId & ~1) & (1u << (dim-codim-1))) == 0);\n+62 }\n+63\n+75 inline static bool isPrism ( unsigned int topologyId, int dim, int codim = 0\n+) noexcept\n+76 {\n+77 assert( (dim > 0) && (topologyId < numTopologies( dim )) );\n+78 assert( (0 <= codim) && (codim < dim) );\n+79 return (( (topologyId | 1) & (1u << (dim-codim-1))) != 0);\n+80 }\n+81\n+89 inline static unsigned int baseTopologyId ( unsigned int topologyId, int\n+dim, int codim = 1 ) noexcept\n 90 {\n-98 inline static constexpr std::size_t regular_offset(std::size_t dim)\n-99 {\n-100 // The number of regular geometry types in a given dimension is\n-101 // 2^(dim-1). For dim==0 this would yield 1/2 geometry types (which is\n-102 // obviously bogus, dim==0 has one regular geometry type, the point).\n-103 // The following expression relies on 1 >> 1 == 0 to treat dim==0\n-104 // specially.\n-105 return (1 << dim) >> 1;\n-106 }\n-107\n-108 public:\n-_\b1_\b1_\b3 inline static constexpr std::size_t _\bo_\bf_\bf_\bs_\be_\bt(std::size_t dim)\n+91 assert( (dim >= 0) && (topologyId < numTopologies( dim )) );\n+92 assert( (0 <= codim) && (codim <= dim) );\n+93 return topologyId & ((1u << (dim-codim)) - 1);\n+94 }\n+95\n+96 } // namespace Impl\n+97\n+98 // GeometryType\n+99 // -------------\n+100\n+_\b1_\b1_\b3 class _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n 114 {\n-115 // dim times \"none\"\n-116 return regular_offset(dim) + dim;\n-117 }\n-118\n-_\b1_\b2_\b5 inline static constexpr std::size_t _\bs_\bi_\bz_\be(std::size_t maxdim)\n-126 {\n-127 return _\bo_\bf_\bf_\bs_\be_\bt(maxdim+1);\n-128 }\n-129\n-_\b1_\b3_\b8 inline static constexpr std::size_t _\bi_\bn_\bd_\be_\bx(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >)\n-139 {\n-140 return _\bo_\bf_\bf_\bs_\be_\bt(gt._\bd_\bi_\bm()) + _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx(gt);\n-141 }\n-142 };\n-143\n-144 namespace Impl {\n-145\n-146 // Map a dynamic GeometryType to a static integral_constant<GeometryType::\n-Id, ...>\n-147 template<int dim, class F>\n-148 static auto toGeometryTypeIdConstant(const GeometryType& gt, F&& f) {\n-149 // Transform LocalGeometryTypeIndex to GeometryType::Id\n-150 auto callWithId = [&](auto index) {\n-151 static constexpr auto id = _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bt_\by_\bp_\be(dim, decltype\n-(index)::value)._\bt_\bo_\bI_\bd();\n-152 return f(std::integral_constant<GeometryType::Id, id>{});\n-153 };\n-154 // switchCases needs a fallback to determine the return type.\n-155 auto fallBack = [&]() { return callWithId(Dune::Indices::_0); };\n-156 // Iterate over all _regular_ GeometryType indices for given dimension\n-157 auto allIndices = std::make_index_sequence<_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n-(dim)-1>{};\n-158 return Dune::Hybrid::switchCases(allIndices, _\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-(gt), callWithId, fallBack);\n-159 }\n-160\n-161 } // namespace Impl\n-162} // namespace Dune\n-163\n-164#endif // DUNE_GEOMETRY_TYPEINDEX_HH\n-_\bt_\by_\bp_\be_\b._\bh_\bh\n-A unique label for each type of element that can occur in a grid.\n+115 public:\n+116\n+_\b1_\b1_\b9 enum\n+120 _\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be {\n+_\b1_\b2_\b1 _\bs_\bi_\bm_\bp_\bl_\be_\bx,\n+_\b1_\b2_\b2 _\bc_\bu_\bb_\be,\n+_\b1_\b2_\b3 _\bp_\by_\br_\ba_\bm_\bi_\bd,\n+_\b1_\b2_\b4 _\bp_\br_\bi_\bs_\bm,\n+_\b1_\b2_\b5 _\be_\bx_\bt_\be_\bn_\bd_\be_\bd,\n+126 _\bn_\bo_\bn_\be\n+_\b1_\b2_\b7 };\n+128\n+129 private:\n+130\n+132 unsigned char dim_;\n+133\n+135 bool none_;\n+136\n+138 unsigned int topologyId_;\n+139\n+140 // Internal type used for the Id. The exact nature of this type is kept\n+141 // as an implementation detail on purpose. We use a scoped enum here\n+because scoped enums\n+142 // can be used as template parameters, but are not implicitly converted to\n+other integral\n+143 // types by the compiler. That way, we avoid unfortunate implicit\n+conversion chains, e.g.\n+144 // people trying to work with GlobalGeometryTypeIndex, but forgetting to\n+actually call\n+145 // GlobalGeometryTypeIndex::index(gt) and just using gt directly.\n+146 enum class IdType : std::uint64_t\n+147 {};\n+148\n+149 public:\n+150\n+_\b1_\b8_\b1 using Id = IdType;\n+182\n+_\b1_\b9_\b0 constexpr operator _\bI_\bd() const\n+191 {\n+192 // recreate the exact storage layout that this class is using, making\n+conversion\n+193 // extremely cheap\n+194 std::uint64_t id = dim_ | (std::uint64_t(none_) << 8) | (std::uint64_t\n+(topologyId_) << 32);\n+195 return static_cast<Id>(_\bi_\bd);\n+196 }\n+197\n+_\b2_\b1_\b0 constexpr Id _\bt_\bo_\bI_\bd() const\n+211 {\n+212 return static_cast<Id>(*this);\n+213 }\n+214\n+_\b2_\b2_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(Id id)\n+223 : dim_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) & 0xFF)\n+224 , none_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) & 0x100)\n+225 , topologyId_(static_cast<_\bs_\bt_\bd::uint64_t>(_\bi_\bd) >> 32)\n+226 {}\n+227\n+230\n+_\b2_\b3_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be ()\n+233 : dim_(0), none_(true), topologyId_(0)\n+234 {}\n+235\n+_\b2_\b4_\b2 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(unsigned int topologyId, unsigned int _\bd_\bi_\bm, bool\n+_\bi_\bs_\bN_\bo_\bn_\be)\n+243 : dim_(_\bd_\bi_\bm), none_(_\bi_\bs_\bN_\bo_\bn_\be), topologyId_(topologyId)\n+244 {}\n+245\n+_\b2_\b5_\b1 constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(unsigned int topologyId, unsigned int _\bd_\bi_\bm)\n+252 : dim_(_\bd_\bi_\bm), none_(false), topologyId_(topologyId)\n+253 {}\n+254\n+265 template<class TopologyType,\n+266 class = std::void_t<decltype(TopologyType::dimension), decltype\n+(TopologyType::id)>>\n+_\b2_\b6_\b7 explicit _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(TopologyType t)\n+268 : dim_(TopologyType::dimension), none_(false), topologyId_(TopologyType::\n+_\bi_\bd)\n+269 {\n+270 DUNE_UNUSED_PARAMETER(t);\n+271 }\n+272\n+_\b2_\b7_\b9 constexpr bool _\bi_\bs_\bV_\be_\br_\bt_\be_\bx() const {\n+280 return dim_==0;\n+281 }\n+282\n+_\b2_\b8_\b4 constexpr bool _\bi_\bs_\bL_\bi_\bn_\be() const {\n+285 return dim_==1;\n+286 }\n+287\n+_\b2_\b8_\b9 constexpr bool _\bi_\bs_\bT_\br_\bi_\ba_\bn_\bg_\bl_\be() const {\n+290 return ! none_ && dim_==2 && (topologyId_ | 1) == 0b0001;\n+291 }\n+292\n+_\b2_\b9_\b4 constexpr bool _\bi_\bs_\bQ_\bu_\ba_\bd_\br_\bi_\bl_\ba_\bt_\be_\br_\ba_\bl() const {\n+295 return ! none_ && dim_==2 && (topologyId_ | 1) == 0b0011;\n+296 }\n+297\n+_\b2_\b9_\b9 constexpr bool _\bi_\bs_\bT_\be_\bt_\br_\ba_\bh_\be_\bd_\br_\bo_\bn() const {\n+300 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0001;\n+301 }\n+302\n+_\b3_\b0_\b4 constexpr bool _\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd() const {\n+305 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0011;\n+306 }\n+307\n+_\b3_\b0_\b9 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm() const {\n+310 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0101;\n+311 }\n+312\n+_\b3_\b1_\b4 constexpr bool _\bi_\bs_\bH_\be_\bx_\ba_\bh_\be_\bd_\br_\bo_\bn() const {\n+315 return ! none_ && dim_==3 && (topologyId_ | 1) == 0b0111;\n+316 }\n+317\n+_\b3_\b1_\b9 constexpr bool _\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx() const {\n+320 return ! none_ && (topologyId_ | 1) == 1;\n+321 }\n+322\n+_\b3_\b2_\b4 constexpr bool _\bi_\bs_\bC_\bu_\bb_\be() const {\n+325 return ! none_ && ((topologyId_ ^ ((1 << dim_)-1)) >> 1 == 0);\n+326 }\n+327\n+_\b3_\b2_\b9 constexpr bool _\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl() const {\n+330 return ! none_ && (((topologyId_ & ~1) & (1u << (dim_-1))) == 0);\n+331 }\n+332\n+_\b3_\b3_\b7 constexpr bool _\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl(const int& step) const {\n+338 return ! none_ && (((topologyId_ & ~1) & (1u << step)) == 0);\n+339 }\n+340\n+_\b3_\b4_\b2 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc() const {\n+343 return ! none_ && (( (topologyId_ | 1) & (1u << (dim_-1))) != 0);\n+344 }\n+345\n+_\b3_\b5_\b0 constexpr bool _\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc(const int& step) const {\n+351 return ! none_ && (( (topologyId_ | 1) & (1u << step)) != 0);\n+352 }\n+353\n+_\b3_\b5_\b5 constexpr bool _\bi_\bs_\bN_\bo_\bn_\be() const {\n+356 return none_;\n+357 }\n+358\n+_\b3_\b6_\b0 constexpr unsigned int _\bd_\bi_\bm() const {\n+361 return dim_;\n+362 }\n+363\n+_\b3_\b6_\b5 constexpr unsigned int _\bi_\bd() const {\n+366 return topologyId_;\n+367 }\n+368\n+373\n+_\b3_\b7_\b7 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n+378 return ( ( none_ == other.none_ )\n+379 && ( ( none_ == true )\n+380 || ( ( dim_ == other.dim_ )\n+381 && ( (topologyId_ >> 1) == (other.topologyId_ >> 1) )\n+382 )\n+383 )\n+384 );\n+385 }\n+386\n+_\b3_\b8_\b8 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n+389 return ! ((*this)==other);\n+390 }\n+391\n+_\b3_\b9_\b3 constexpr bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b _\b<_\b (const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& other) const {\n+394 return ( ( none_ < other.none_ )\n+395 || ( !( other.none_ < none_ )\n+396 && ( ( dim_ < other.dim_ )\n+397 || ( (other.dim_ == dim_)\n+398 && ((topologyId_ >> 1) < (other.topologyId_ >> 1) )\n+399 )\n+400 )\n+401 )\n+402 );\n+403 }\n+404\n+407 };\n+408\n+_\b4_\b1_\b0 inline std::ostream& _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<_\b (std::ostream& s, const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& a)\n+411 {\n+412 if (a._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n+413 {\n+414 s << \"(simplex, \" << a._\bd_\bi_\bm() << \")\";\n+415 return s;\n+416 }\n+417 if (a._\bi_\bs_\bC_\bu_\bb_\be())\n+418 {\n+419 s << \"(cube, \" << a._\bd_\bi_\bm() << \")\";\n+420 return s;\n+421 }\n+422 if (a._\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd())\n+423 {\n+424 s << \"(pyramid, 3)\";\n+425 return s;\n+426 }\n+427 if (a._\bi_\bs_\bP_\br_\bi_\bs_\bm())\n+428 {\n+429 s << \"(prism, 3)\";\n+430 return s;\n+431 }\n+432 if (a._\bi_\bs_\bN_\bo_\bn_\be())\n+433 {\n+434 s << \"(none, \" << a._\bd_\bi_\bm() << \")\";\n+435 return s;\n+436 }\n+437 s << \"(other [\" << a._\bi_\bd() << \"], \" << a._\bd_\bi_\bm() << \")\";\n+438 return s;\n+439 }\n+440\n+441\n+443\n+_\b4_\b4_\b7 namespace GeometryTypes {\n+448\n+450\n+453 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be simplex(unsigned int dim)\n+454 {\n+455 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,dim,false);\n+456 }\n+457\n+459\n+462 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be cube(unsigned int dim)\n+463 {\n+464 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(((dim>1) ? ((1 << dim) - 1) : 0),dim,false);\n+465 }\n+466\n+468\n+471 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be none(unsigned int dim)\n+472 {\n+473 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,dim,true);\n+474 }\n+475\n+477 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be conicalExtension(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt)\n+478 {\n+479 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd(), gt._\bd_\bi_\bm()+1, gt._\bi_\bs_\bN_\bo_\bn_\be());\n+480 }\n+481\n+483 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be prismaticExtension(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt)\n+484 {\n+485 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd() | ((1 << gt._\bd_\bi_\bm())), gt._\bd_\bi_\bm()+1, gt._\bi_\bs_\bN_\bo_\bn_\be());\n+486 }\n+487\n+489\n+492 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be vertex = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,0,false);\n+493\n+495\n+498 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be line = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0,1,false);\n+499\n+501\n+504 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be triangle = simplex(2);\n+505\n+507\n+510 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be quadrilateral = cube(2);\n+511\n+513\n+516 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be tetrahedron = simplex(3);\n+517\n+519\n+522 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be pyramid = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0b0011,3,false);\n+523\n+525\n+528 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be prism = _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(0b0101,3,false);\n+529\n+531\n+534 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be hexahedron = cube(3);\n+535\n+536 }\n+537\n+538 namespace Impl\n+539 {\n+540\n+542 inline constexpr _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be getBase(const _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be& gt) {\n+543 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be(gt._\bi_\bd() & ((1 << (gt._\bd_\bi_\bm()-1))-1), gt._\bd_\bi_\bm()-1,\n+gt._\bi_\bs_\bN_\bo_\bn_\be());\n+544 }\n+545\n+546\n+547 // IfGeometryType\n+548 // ----------\n+549\n+550 template< template< GeometryType::Id > class Operation, int dim,\n+_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd geometryId = GeometryTypes::vertex >\n+551 struct IfGeometryType\n+552 {\n+553 static constexpr GeometryType geometry = geometryId;\n+554 template< class... Args >\n+555 static auto apply ( GeometryType gt, Args &&... args )\n+556 {\n+557 GeometryType lowerGeometry(gt.id() >>1 , gt.dim()-1, gt.isNone());\n+558\n+559 if( gt.id() & 1 )\n+560 return IfGeometryType< Operation, dim-1, GeometryTypes::prismaticExtension\n+(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );\n+561 else\n+562 return IfGeometryType< Operation, dim-1, GeometryTypes::conicalExtension\n+(geometry).toId() >::apply( lowerGeometry, std::forward< Args >( args )... );\n+563 }\n+564 };\n+565\n+566 template< template< GeometryType::Id > class Operation, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd\n+geometryId >\n+567 struct IfGeometryType< Operation, 0, geometryId>\n+568 {\n+569 template< class... Args >\n+570 static auto apply ([[maybe_unused]] GeometryType gt, Args &&... args )\n+571 {\n+572 return Operation< geometryId >::apply( std::forward< Args >( args )... );\n+573 }\n+574 };\n+575 } // namespace Impl\n+576} // namespace Dune\n+577\n+578#endif // DUNE_GEOMETRY_TYPE_HH\n+_\bs_\bt_\bd\n+STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n+_\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<\n+std::ostream & operator<<(std::ostream &s, const GeometryType &a)\n+Prints the type to an output stream.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:410\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n Unique label for each type of entities that can occur in DUNE grids.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+constexpr GeometryType(unsigned int topologyId, unsigned int dim)\n+Constructor, using the topologyId (integer) and the dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:251\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<\n+constexpr bool operator<(const GeometryType &other) const\n+less-than operation for use with maps\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:393\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=\n+constexpr bool operator!=(const GeometryType &other) const\n+Check for inequality.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:388\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\by_\br_\ba_\bm_\bi_\bd\n+constexpr bool isPyramid() const\n+Return true if entity is a pyramid.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:304\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bT_\be_\bt_\br_\ba_\bh_\be_\bd_\br_\bo_\bn\n+constexpr bool isTetrahedron() const\n+Return true if entity is a tetrahedron.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:299\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm\n+constexpr bool isPrism() const\n+Return true if entity is a prism.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:309\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bV_\be_\br_\bt_\be_\bx\n+constexpr bool isVertex() const\n+Return true if entity is a vertex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:279\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n+constexpr bool operator==(const GeometryType &other) const\n+Check for equality. This method knows that in dimension 0 and 1 all BasicTypes\n+are equal.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:377\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bt_\bo_\bI_\bd\n constexpr Id toId() const\n Create an Id representation of this GeometryType.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:210\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl\n+constexpr bool isConical(const int &step) const\n+Return true if entity was constructed with a conical product in the chosen\n+step.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:337\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n constexpr unsigned int dim() const\n Return dimension of the type.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc\n+constexpr bool isPrismatic(const int &step) const\n+Return true if entity was constructed with a prismatic product in the chosen\n+step.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:350\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bT_\br_\bi_\ba_\bn_\bg_\bl_\be\n+constexpr bool isTriangle() const\n+Return true if entity is a triangle.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:289\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+GeometryType(TopologyType t)\n+Constructor from static TopologyType class.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:267\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+constexpr GeometryType(unsigned int topologyId, unsigned int dim, bool isNone)\n+Constructor, using the topologyId (integer), the dimension and a flag for type\n+none.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:242\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bB_\ba_\bs_\bi_\bc_\bT_\by_\bp_\be\n+BasicType\n+Each entity can be tagged by one of these basic types plus its space dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:120\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be\n+@ cube\n+Cube element in any nonnegative dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:122\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx\n+@ simplex\n+Simplicial element in any nonnegative dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:121\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\by_\br_\ba_\bm_\bi_\bd\n+@ pyramid\n+Four sided pyramid in three dimensions.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:123\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\be_\bx_\bt_\be_\bn_\bd_\be_\bd\n+@ extended\n+Other, more general topology, representable as topologyId.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:125\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bn_\bo_\bn_\be\n+@ none\n+Even more general topology, cannot be specified by a topologyId. Two\n+GeometryTypes with 'none' type a...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:126\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\br_\bi_\bs_\bm\n+@ prism\n+Prism element in three dimensions.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:124\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+constexpr GeometryType(Id id)\n+Reconstruct a Geometry type from a GeometryType::Id.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:222\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bu_\bb_\be\n+constexpr bool isCube() const\n+Return true if entity is a cube of any dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:324\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+constexpr GeometryType()\n+Default constructor, not initializing anything.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:232\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bC_\bo_\bn_\bi_\bc_\ba_\bl\n+constexpr bool isConical() const\n+Return true if entity was constructed with a conical product in the last step.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:329\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bL_\bi_\bn_\be\n+constexpr bool isLine() const\n+Return true if entity is a line segment.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:284\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bQ_\bu_\ba_\bd_\br_\bi_\bl_\ba_\bt_\be_\br_\ba_\bl\n+constexpr bool isQuadrilateral() const\n+Return true if entity is a quadrilateral.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:294\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bP_\br_\bi_\bs_\bm_\ba_\bt_\bi_\bc\n+constexpr bool isPrismatic() const\n+Return true if entity was constructed with a prismatic product in the last\n+step.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:342\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n constexpr unsigned int id() const\n Return the topology id of the type.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bN_\bo_\bn_\be\n constexpr bool isNone() const\n Return true if entity is a singular of any dimension.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:355\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n-Compute per-dimension indices for geometry types.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:25\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n-static constexpr std::size_t size(std::size_t dim)\n-Compute total number of geometry types for the given dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:61\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bt_\by_\bp_\be\n-static constexpr GeometryType type(std::size_t dim, std::size_t index)\n-compute the geometry type for the given local index and dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:79\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-static constexpr std::size_t index(const GeometryType >)\n-Compute the index for the given geometry type within its dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:73\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx\n-Compute indices for geometry types, taking the dimension into account.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:90\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-static constexpr std::size_t index(const GeometryType >)\n-Compute the index for the given geometry type over all dimensions.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:138\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bo_\bf_\bf_\bs_\be_\bt\n-static constexpr std::size_t offset(std::size_t dim)\n-Compute the starting index for a given dimension including irregular geometry\n-types.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:113\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b:_\b:_\bs_\bi_\bz_\be\n-static constexpr std::size_t size(std::size_t maxdim)\n-Compute total number of geometry types up to and including the given dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typeindex.hh:125\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bH_\be_\bx_\ba_\bh_\be_\bd_\br_\bo_\bn\n+constexpr bool isHexahedron() const\n+Return true if entity is a hexahedron.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:314\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx\n+constexpr bool isSimplex() const\n+Return true if entity is a simplex of any dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:319\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bI_\bd\n+IdType Id\n+An integral id representing a GeometryType.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:181\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00230.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00230.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: dimension.hh File Reference</title>\n+<title>dune-geometry: virtualrefinement.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -71,36 +71,96 @@\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">dimension.hh File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> |\n+<a href=\"#func-members\">Functions</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">virtualrefinement.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <type_traits></code><br />\n+\n+<p>This file contains the virtual wrapper around refinement. \n+<a href=\"#details\">More...</a></p>\n+<div class=\"textblock\"><code>#include <cassert></code><br />\n+<code>#include <typeinfo></code><br />\n+<code>#include <dune/common/exceptions.hh></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <dune/common/iteratorfacades.hh></code><br />\n+<code>#include "<a class=\"el\" href=\"a00227_source.html\">type.hh</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00176_source.html\">refinement.hh</a>"</code><br />\n </div>\n <p><a href=\"a00230_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01115.html\">Dune::Dim< dim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Static tag representing a dimension. <a href=\"a01115.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01399.html\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01403.html\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01407.html\">Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01415.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01419.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01423.html\">Dune::VirtualRefinement< dimension, CoordType >::SubEntityIteratorBack< dimension, CoordType ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01427.html\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01439.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01443.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01119.html\">Dune::Codim< codim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Static tag representing a codimension. <a href=\"a01119.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01431.html\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::SubEntityIteratorBack< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01447.html\">Dune::RefinementBuilder< dimension, CoordType ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01451.html\">Dune::RefinementBuilder< 1, CoordType ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01455.html\">Dune::RefinementBuilder< 3, CoordType ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:ac82d420bff6cce87d06ad71b4f1cb0c8\" id=\"r_ac82d420bff6cce87d06ad71b4f1cb0c8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00230.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</a></td></tr>\n+<tr class=\"separator:ac82d420bff6cce87d06ad71b4f1cb0c8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n+Functions</h2></td></tr>\n+<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\" id=\"r_a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01459.html\">VirtualRefinement</a>< dimension, CoordType > & </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"el\" href=\"a01367.html\">GeometryType</a> coerceTo)</td></tr>\n+<tr class=\"memdesc:a73043181be4688f6cc83f1416cc176c6\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">return a reference to the <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> according to the parameters <br /></td></tr>\n+<tr class=\"separator:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>This file contains the virtual wrapper around refinement. </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"ac82d420bff6cce87d06ad71b4f1cb0c8\" name=\"ac82d420bff6cce87d06ad71b4f1cb0c8\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac82d420bff6cce87d06ad71b4f1cb0c8\">◆ </a></span>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,22 +1,74 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-dimension.hh File Reference\n-#include <type_traits>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+virtualrefinement.cc File Reference\n+This file contains the virtual wrapper around refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <cassert>\n+#include <typeinfo>\n+#include <dune/common/exceptions.hh>\n+#include <dune/common/fvector.hh>\n+#include <dune/common/iteratorfacades.hh>\n+#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm_\b<_\b _\bd_\bi_\bm_\b _\b>\n-\u00a0 Static tag representing a dimension. _\bM_\bo_\br_\be_\b._\b._\b.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\b _\b>\n-\u00a0 Static tag representing a codimension. _\bM_\bo_\br_\be_\b._\b._\b.\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+ _\b0_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b1_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b3_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bV_\bI_\bR_\bT_\bU_\bA_\bL_\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bC_\bC\n+\u00a0\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template<int dimension, class CoordType >\n+_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt< dimension, CoordType > _\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+ &\u00a0 geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n+ return a reference to the\n+\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt according to the\n+ parameters\n+\u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+This file contains the virtual wrapper around refinement.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_V\bVI\bIR\bRT\bTU\bUA\bAL\bLR\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00230_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00230_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: dimension.hh Source File</title>\n+<title>dune-geometry: virtualrefinement.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -74,54 +74,817 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">dimension.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">virtualrefinement.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00230.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_DIMENSION_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_DIMENSION_HH</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <type_traits></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span> </div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dim></div>\n-<div class=\"foldopen\" id=\"foldopen00014\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01115.html\"> 14</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01115.html\">Dim</a></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> : <span class=\"keyword\">public</span> std::integral_constant<int,dim></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> {</div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\"> 17</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01115.html\">Dim</a> <a class=\"code hl_typedef\" href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\">type</a>;</div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codim></div>\n-<div class=\"foldopen\" id=\"foldopen00022\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01119.html\"> 22</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01119.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> : <span class=\"keyword\">public</span> std::integral_constant<int,codim></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span> {</div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\"> 25</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01119.html\">Codim</a> <a class=\"code hl_typedef\" href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\">type</a>;</div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> </div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span>}</div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> </div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_DIMENSION_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00230.html#ac82d420bff6cce87d06ad71b4f1cb0c8\"> 7</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <typeinfo></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n+<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00227.html\">type.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00176.html\">refinement.hh</a>"</span></div>\n+<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> </div>\n+<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span>{</div>\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"comment\">// //////////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// The virtual base class and its iterators</span></div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> </div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// Refinement</span></div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VirtualRefinement<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00037\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\"> 37</a></span> <a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">VirtualRefinement<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\"> vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>(vBeginBack(tag));</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> </div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VirtualRefinement<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00045\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\"> 45</a></span> <a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">VirtualRefinement<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\"> vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>(vEndBack(tag));</div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">VirtualRefinement<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00053\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\"> 53</a></span> <a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">VirtualRefinement<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span><a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\"> eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>(eBeginBack(tag));</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> </div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">VirtualRefinement<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\"> 61</a></span> <a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">VirtualRefinement<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span><a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\"> eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>(eEndBack(tag));</div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"comment\">// The iterators</span></div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01395.html\"> 72</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"comment\">// The iterator for vertices</span></div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00076\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01399.html\"> 76</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> {};</div>\n+</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"comment\">// The iterator for elements</span></div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00081\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html\"> 81</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> {</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\"> 84</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Common</a>;</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\"> 86</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <a class=\"code hl_typedef\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> </div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00093\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a7ce2e03dc5e34cef56e8f4a8f80f6f41\"> 93</a></span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span><a class=\"code hl_class\" href=\"a01395.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Common</a> *<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>)->backend->vertexIndices();</div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> </div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"comment\">// The iterator common stuff</span></div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00102\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html\"> 102</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01463.html\">Codim</a><codimension>::SubEntityIterator</div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> {</div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\"> 107</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\"> 108</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\"> 109</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\"> 110</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\"> 112</a></span> <a class=\"code hl_function\" href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\">SubEntityIterator</a>(<a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a> *backend);</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\"> 113</a></span> <a class=\"code hl_function\" href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\">SubEntityIterator</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other);</div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\"> 114</a></span> <a class=\"code hl_function\" href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\">~SubEntityIterator</a>();</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> </div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\"> 116</a></span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &<a class=\"code hl_function\" href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\">operator=</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other);</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> </div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\"> 118</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\"> 119</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\">increment</a>();</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> </div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\"> 121</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\">index</a>() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> </div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"comment\">// If you simply use an unqualified CoordVector here g++-4.2 chokes</span></div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::template</a> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a>::</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\"> 125</a></span> CoordVector <a class=\"code hl_function\" href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\">coords</a>() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension>;</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a> *backend;</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span><a class=\"code hl_class\" href=\"a01459.html\"> SubEntityIterator</a>(IteratorBack *backend_)</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> : backend(backend_)</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {}</div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> </div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span><a class=\"code hl_class\" href=\"a01459.html\"> SubEntityIterator</a>(<span class=\"keyword\">const</span> This &other)</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> : backend(other.backend->clone())</div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> {}</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> ~SubEntityIterator()</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> {</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keyword\">delete</span> backend;</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"keyword\">typename</span> VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator &</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> operator=(<span class=\"keyword\">const</span> This &other)</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> {</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">delete</span> backend;</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> backend = other.backend->clone();</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> }</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> equals(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> *backend == *(other.backend); }</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> </div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> increment()</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> {</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> ++*backend;</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> }</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> index()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend->index(); }</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> </div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">typename</span> VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator::CoordVector</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> coords()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend->coords(); }</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> </div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"comment\">// The iterator backend</span></div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> </div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01411.html\"> 200</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> </div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"comment\">// The iterator backend for vertices</span></div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00204\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01415.html\"> 204</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> {</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00208\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\"> 208</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\">~VirtualRefinementSubEntityIteratorBackSpecial</a>()</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"comment\">// The iterator backend for elements</span></div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00214\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html\"> 214</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> {</div>\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\"> 217</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\"> 218</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> </div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\"> 220</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">IndexVector</a> <a class=\"code hl_function\" href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\">vertexIndices</a>() <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00222\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\"> 222</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\">~VirtualRefinementSubEntityIteratorBackSpecial</a>()</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> </div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"comment\">// The iterator backend common stuff</span></div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00229\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html\"> 229</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack</a></div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> {</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\"> 233</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\"> 234</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\"> 235</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> </div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\"> 237</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\">~SubEntityIteratorBack</a>() {}</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> </div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\"> 239</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> *<a class=\"code hl_function\" href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\">clone</a>() <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\"> 241</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\">operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> &other) <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\"> 242</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> &<a class=\"code hl_function\" href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\">operator++</a>() = 0;</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\"> 244</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\">index</a>() <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\"> 245</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">CoordVector</a> <a class=\"code hl_function\" href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\">coords</a>() <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"comment\">// /////////////////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"comment\">// The derived classes and their iterator backends</span></div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"comment\">// The refinement implementation</span></div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> </div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00259\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html\"> 259</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a></div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">Dune::VirtualRefinement</a><dimension, CoordType></div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> {</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\"> 263</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01227.html\">Dune::StaticRefinement<topologyId, CoordType, coerceToId, dimension></a> <a class=\"code hl_typedef\" href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\">StaticRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\"> 264</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">Dune::VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\">VirtualRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> </div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> </div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keywordtype\">int</span> nVertices(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"keywordtype\">int</span> nElements(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension></a> &instance();</div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a>() {}</div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> </div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinement::VertexIteratorBack</a> *vBeginBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinement::VertexIteratorBack</a> *vEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinement::ElementIteratorBack</a> *eBeginBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinement::ElementIteratorBack</a> *eEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension> &</div>\n+<div class=\"foldopen\" id=\"foldopen00286\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\"> 286</a></span> <a class=\"code hl_function\" href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::instance</a>()</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> {</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a> instance_{};</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">return</span> instance_;</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> </div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00294\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\"> 294</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span><a class=\"code hl_function\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\"> nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01227.html#a8922c129d11181e8206f719803931346\">StaticRefinement::nVertices</a>(tag);</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> </div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack</a> *</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span><a class=\"code hl_class\" href=\"a01427.html\"> vBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<dimension>(<a class=\"code hl_function\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">StaticRefinement::vBegin</a>(tag));</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> }</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> </div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack</a> *</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> vEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<dimension>(<a class=\"code hl_function\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">StaticRefinement::vEnd</a>(tag));</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> </div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00320\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\"> 320</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">StaticRefinement::nElements</a>(tag);</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack</a> *</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span><a class=\"code hl_class\" href=\"a01427.html\"> eBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<0>(<a class=\"code hl_function\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">StaticRefinement::eBegin</a>(tag));</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> }</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> </div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack</a> *</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> eEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<0>(<a class=\"code hl_function\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">StaticRefinement::eEnd</a>(tag));</div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> }</div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> </div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"comment\">// The iterator backend implementation</span></div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"comment\">// The iterator backend implementation specialties</span></div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01435.html\"> 350</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"comment\">// The iterator backend implementation specialties for vertices</span></div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00355\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01439.html\"> 355</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, dimension></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::template SubEntityIteratorBack<dimension></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> {};</div>\n+</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> <span class=\"comment\">// The iterator backend implementation specialties for elements</span></div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> </div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00363\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html\"> 363</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, 0></div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::template SubEntityIteratorBack<0></div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> {</div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\"> 367</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01427.html\">Dune::VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension></a> <a class=\"code hl_typedef\" href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\">VirtualRefinementImp</a>;</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\"> 368</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> VirtualRefinementImp::template SubEntityIteratorBack<0> <a class=\"code hl_typedef\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Common</a>;</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\"> 369</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01227.html\">VirtualRefinementImp::StaticRefinement</a> <a class=\"code hl_typedef\" href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\">StaticRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\"> 370</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\">RefinementBase</a>;</div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\"> 371</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> RefinementBase::IndexVector <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> </div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial<topologyId, CoordType, coerceToId, dimension, 0>::IndexVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00379\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a0a1edfbd77c5c5454eda7dfb54c91d77\"> 379</a></span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial<topologyId, CoordType, coerceToId, dimension, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span><a class=\"code hl_class\" href=\"a01435.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a> vIndices;</div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> vIndices.reserve(StaticRefinement::IndexVector::dimension);</div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> </div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">typename</span> <a class=\"code hl_variable\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">StaticRefinement::IndexVector</a> sIndices = <span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Common</a> *<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>)->backend.vertexIndices();</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < StaticRefinement::IndexVector::dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> vIndices.push_back(sIndices[i]);</div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keywordflow\">return</span> vIndices;</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> </div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// The shared iterator backend implementation</span></div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00395\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html\"> 395</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a><topologyId, CoordType, coerceToId, dimension>::<a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a></div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension></div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> {</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\"> 399</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> StaticRefinement::template <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\"> 400</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\"> 401</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> VirtualRefinement::template <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a>;</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\"> 402</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">VirtualRefinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> </div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> &backend);</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &other);</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> </div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> *clone() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> <span class=\"keywordtype\">bool</span> operator==(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &operator++();</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a79f36212d37a0146fd705fc81ea9a12d\"> 413</a></span> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension>;</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> backend;</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> </div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00423\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a19f77e48746b89c28e7a34b797c7a960\"> 423</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span><a class=\"code hl_class\" href=\"a01427.html\"> SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> &backend_)</div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> : backend(backend_)</div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> </div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00431\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a37c6e4d560c1d7e63312f28451383a30\"> 431</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span><a class=\"code hl_class\" href=\"a01427.html\"> SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &other)</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> : <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension>(other),</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> backend(other.backend)</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> {}</div>\n+</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> </div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">SubEntityIteratorBack<codimension>::Base</a> *</div>\n+<div class=\"foldopen\" id=\"foldopen00440\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a7bd8326d395345fa2874ffd5d4e88b51\"> 440</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span><a class=\"code hl_class\" href=\"a01427.html\"> clone</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a>(*<span class=\"keyword\">this</span>); }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"foldopen\" id=\"foldopen00447\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a4c629e09d75d532df0194b0858505249\"> 447</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span><a class=\"code hl_class\" href=\"a01427.html\"> operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keywordflow\">try</span> {</div>\n+<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keywordflow\">return</span> backend == <span class=\"keyword\">dynamic_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &<span class=\"keyword\">></span>(other).backend;</div>\n+<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> }</div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keywordflow\">catch</span>(<span class=\"keyword\">const</span> std::bad_cast&)</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> {</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> }</div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> </div>\n+<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">SubEntityIteratorBack<codimension>::Base</a> &</div>\n+<div class=\"foldopen\" id=\"foldopen00462\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a58b300f7e45aa41860d9a0832a60a668\"> 462</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span><a class=\"code hl_class\" href=\"a01427.html\"> operator++</a>()</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> {</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> ++backend;</div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">this</span>;</div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> </div>\n+<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00472\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a7f6e6a137177b0094efbba9e6635e492\"> 472</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span><a class=\"code hl_class\" href=\"a01427.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend.index(); }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> </div>\n+<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">SubEntityIteratorBack<codimension>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00479\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ad89388e1bed00985747776577f8066d6\"> 479</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n+<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span><a class=\"code hl_class\" href=\"a01427.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend.coords(); }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> </div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"comment\">// ////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"comment\">// The refinement builder</span></div>\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> </div>\n+<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a>;</div>\n+<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> </div>\n+<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n+<div class=\"foldopen\" id=\"foldopen00503\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\"> 503</a></span> <a class=\"code hl_function\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">buildRefinement</a>( </div>\n+<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> geometryType,</div>\n+<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> coerceTo)</div>\n+<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> {</div>\n+<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> <span class=\"comment\">// Check that the user used valid geometry types</span></div>\n+<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> assert(geometryType.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() == dimension && coerceTo.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() == dimension);</div>\n+<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">RefinementBuilder<dimension, CoordType>::build</a>( geometryType.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), coerceTo.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() );</div>\n+<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> </div>\n+<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> <span class=\"comment\">// In principle the trick with the class is no longer necessary,</span></div>\n+<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> <span class=\"comment\">// but I'm keeping it in here so it will be easier to specialize</span></div>\n+<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"comment\">// buildRefinement when someone implements pyramids and prisms</span></div>\n+<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00517\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01447.html\"> 517</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a></div>\n+<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> {</div>\n+<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> <span class=\"keyword\">static</span></div>\n+<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n+<div class=\"foldopen\" id=\"foldopen00522\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\"> 522</a></span> <a class=\"code hl_function\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n+<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> {</div>\n+<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> topologyId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> coerceToId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> </div>\n+<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idCube = GeometryTypes::cube(dimension).id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> </div>\n+<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keywordflow\">switch</span>( topologyId )</div>\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> {</div>\n+<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n+<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"comment\">//switch( coerceTo )</span></div>\n+<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> {</div>\n+<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n+<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> default :</div>\n+<div class=\"line\"><a id=\"l00541\" name=\"l00541\"></a><span class=\"lineno\"> 541</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> }</div>\n+<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"> 543</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"> 544</span> </div>\n+<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> <span class=\"comment\">//case GeometryType::cube:</span></div>\n+<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> <span class=\"keywordflow\">case</span> idCube :</div>\n+<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> {</div>\n+<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keywordflow\">case</span> idCube :</div>\n+<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idCube, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> default :</div>\n+<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n+<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> </div>\n+<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> default :</div>\n+<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> }</div>\n+<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n+<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n+<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span> </div>\n+<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00567\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01451.html\"> 567</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a><1, CoordType></div>\n+<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> {</div>\n+<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t dimension = 1;</div>\n+<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> <span class=\"keyword\">static</span></div>\n+<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n+<div class=\"foldopen\" id=\"foldopen00573\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\"> 573</a></span> <a class=\"code hl_function\" href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n+<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> {</div>\n+<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> topologyId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> coerceToId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> </div>\n+<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> </div>\n+<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">if</span> (topologyId == 0 && coerceToId == 0)</div>\n+<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> </div>\n+<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n+<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n+<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> </div>\n+<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"> 588</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00589\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01455.html\"> 589</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a><3, CoordType></div>\n+<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> {</div>\n+<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t dimension = 3;</div>\n+<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> <span class=\"keyword\">static</span></div>\n+<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n+<div class=\"foldopen\" id=\"foldopen00595\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\"> 595</a></span> <a class=\"code hl_function\" href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n+<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> {</div>\n+<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> topologyId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> coerceToId &= ~1;</div>\n+<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> </div>\n+<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idCube = GeometryTypes::cube(dimension).id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idPrism = GeometryTypes::prism.id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idPyramid = GeometryTypes::pyramid.id() & ~1;</div>\n+<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> </div>\n+<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> <span class=\"keywordflow\">switch</span>( topologyId )</div>\n+<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> {</div>\n+<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n+<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> <span class=\"comment\">//switch( coerceTo )</span></div>\n+<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> {</div>\n+<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n+<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> default :</div>\n+<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> }</div>\n+<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> </div>\n+<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> <span class=\"comment\">//case GeometryType::cube:</span></div>\n+<div class=\"line\"><a id=\"l00621\" name=\"l00621\"></a><span class=\"lineno\"> 621</span> <span class=\"keywordflow\">case</span> idCube :</div>\n+<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> {</div>\n+<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> <span class=\"keywordflow\">case</span> idCube :</div>\n+<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idCube, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> default :</div>\n+<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00630\" name=\"l00630\"></a><span class=\"lineno\"> 630</span> }</div>\n+<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> </div>\n+<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> <span class=\"comment\">//case GeometryType::prism:</span></div>\n+<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> <span class=\"keywordflow\">case</span> idPrism :</div>\n+<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00636\" name=\"l00636\"></a><span class=\"lineno\"> 636</span> {</div>\n+<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"> 637</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idPrism, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span> default :</div>\n+<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> }</div>\n+<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> </div>\n+<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> <span class=\"comment\">//case GeometryType::pyramid:</span></div>\n+<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> <span class=\"keywordflow\">case</span> idPyramid :</div>\n+<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n+<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> {</div>\n+<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n+<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idPyramid, CoordType, idSimplex, dimension>::instance</a>();</div>\n+<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> default :</div>\n+<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> }</div>\n+<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> </div>\n+<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> default :</div>\n+<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> }</div>\n+<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n+<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n+<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> </div>\n+<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> </div>\n+<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n+<div class=\"ttc\" id=\"aa00176_html\"><div class=\"ttname\"><a href=\"a00176.html\">refinement.hh</a></div><div class=\"ttdoc\">This file simply includes all Refinement implementations so you don't have to do them separately.</div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01115_html\"><div class=\"ttname\"><a href=\"a01115.html\">Dune::Dim</a></div><div class=\"ttdoc\">Static tag representing a dimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:16</div></div>\n-<div class=\"ttc\" id=\"aa01115_html_af52f0253259aefd87ee25e1dd63342a8\"><div class=\"ttname\"><a href=\"a01115.html#af52f0253259aefd87ee25e1dd63342a8\">Dune::Dim::type</a></div><div class=\"ttdeci\">Dim type</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:17</div></div>\n+<div class=\"ttc\" id=\"aa00263_html_a73043181be4688f6cc83f1416cc176c6\"><div class=\"ttname\"><a href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType geometryType, GeometryType coerceTo)</div><div class=\"ttdoc\">return a reference to the VirtualRefinement according to the parameters</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:503</div></div>\n <div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01119_html_abaf787307a9d755f9369d8ab2784d515\"><div class=\"ttname\"><a href=\"a01119.html#abaf787307a9d755f9369d8ab2784d515\">Dune::Codim::type</a></div><div class=\"ttdeci\">Codim type</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:25</div></div>\n+<div class=\"ttc\" id=\"aa01223_html\"><div class=\"ttname\"><a href=\"a01223.html\">Dune::RefinementIntervals</a></div><div class=\"ttdoc\">Holds the number of refined intervals per axis needed for virtual and static refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:94</div></div>\n+<div class=\"ttc\" id=\"aa01227_html\"><div class=\"ttname\"><a href=\"a01227.html\">Dune::StaticRefinement</a></div><div class=\"ttdoc\">Wrap each Refinement implementation to get a consistent interface.</div><div class=\"ttdef\"><b>Definition</b> base.cc:141</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a12852b48095c6a9dcb52a9259090fe00\"><div class=\"ttname\"><a href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">Dune::StaticRefinement::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:247</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a269d7e427663d9584b8c1cf21b80b95a\"><div class=\"ttname\"><a href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">Dune::StaticRefinement::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:237</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a2eca414a7fae0d7774745b81e6b540ac\"><div class=\"ttname\"><a href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">Dune::StaticRefinement::nElements</a></div><div class=\"ttdeci\">static int nElements(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> base.cc:227</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a8922c129d11181e8206f719803931346\"><div class=\"ttname\"><a href=\"a01227.html#a8922c129d11181e8206f719803931346\">Dune::StaticRefinement::nVertices</a></div><div class=\"ttdeci\">static int nVertices(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> base.cc:197</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a9b24b410ce9d175a603d21bc2d2bdaa4\"><div class=\"ttname\"><a href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">Dune::StaticRefinement::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:207</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_ad21cde66bb348bbc1f4d543142145c70\"><div class=\"ttname\"><a href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">Dune::StaticRefinement::IndexVector</a></div><div class=\"ttdeci\">typedef IndexVector</div><div class=\"ttdoc\">The IndexVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:177</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_afd95b0b6fb8ffdb1e29d09933c491f9f\"><div class=\"ttname\"><a href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">Dune::StaticRefinement::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:217</div></div>\n+<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n+<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n+<div class=\"ttc\" id=\"aa01395_html\"><div class=\"ttname\"><a href=\"a01395.html\">Dune::VirtualRefinementSubEntityIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:72</div></div>\n+<div class=\"ttc\" id=\"aa01403_html_a61f23e4eea23303a6c30fad6cce7185e\"><div class=\"ttname\"><a href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:85</div></div>\n+<div class=\"ttc\" id=\"aa01403_html_a837f961aef97f059014cb48aed737ed0\"><div class=\"ttname\"><a href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:84</div></div>\n+<div class=\"ttc\" id=\"aa01403_html_ae6f278e1276e23edc6b1e70af75eca9a\"><div class=\"ttname\"><a href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:86</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a03a58dbcd9ed175b8eb0ad4d49f0459d\"><div class=\"ttname\"><a href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\">Dune::VirtualRefinement::Codim< codimension >::coords</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType >::template Codim< codimension >::SubEntityIterator::CoordVector coords() const</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a0fad85c0700db320f535c832b90bc5d0\"><div class=\"ttname\"><a href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\">Dune::VirtualRefinement::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(const This &other)</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a0fc6285a858a0bcbd97615db228f9465\"><div class=\"ttname\"><a href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\">Dune::VirtualRefinement::Codim< codimension >::operator=</a></div><div class=\"ttdeci\">This & operator=(const This &other)</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a12bb247b446fb4f79d0c7400a741a2e9\"><div class=\"ttname\"><a href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\">Dune::VirtualRefinement::Codim< codimension >::index</a></div><div class=\"ttdeci\">int index() const</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a436966e21b9917b96aeba724ccabbc7c\"><div class=\"ttname\"><a href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\">Dune::VirtualRefinement::Codim< codimension >::~SubEntityIterator</a></div><div class=\"ttdeci\">~SubEntityIterator()</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a45307131a1b30a23805a38c5e1f089de\"><div class=\"ttname\"><a href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\">Dune::VirtualRefinement::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(IteratorBack *backend)</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_a65175dfaf73294f2253024d5260f61db\"><div class=\"ttname\"><a href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">Dune::VirtualRefinement::Codim< codimension >::IteratorBack</a></div><div class=\"ttdeci\">Refinement::template SubEntityIteratorBack< codimension > IteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:109</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_aab5cc15e2fc101812d41d3f4bc97f7f6\"><div class=\"ttname\"><a href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\">Dune::VirtualRefinement::Codim< codimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:110</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_ab694f9a59b8af72a206f6fd43028edbd\"><div class=\"ttname\"><a href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">Dune::VirtualRefinement::Codim< codimension >::This</a></div><div class=\"ttdeci\">Refinement::template Codim< codimension >::SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:108</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_abe3eb149202760e3ade29748fa9b965e\"><div class=\"ttname\"><a href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\">Dune::VirtualRefinement::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_ad2dab6a17c2110eb1768d15f266f8238\"><div class=\"ttname\"><a href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\">Dune::VirtualRefinement::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:107</div></div>\n+<div class=\"ttc\" id=\"aa01407_html_af9b428fff2bac338e3a90cc37ff41145\"><div class=\"ttname\"><a href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\">Dune::VirtualRefinement::Codim< codimension >::increment</a></div><div class=\"ttdeci\">void increment()</div></div>\n+<div class=\"ttc\" id=\"aa01411_html\"><div class=\"ttname\"><a href=\"a01411.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:200</div></div>\n+<div class=\"ttc\" id=\"aa01415_html_a4e7103cc2485d7a42dc017d360d8685a\"><div class=\"ttname\"><a href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, dimension >::~VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdeci\">virtual ~VirtualRefinementSubEntityIteratorBackSpecial()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:208</div></div>\n+<div class=\"ttc\" id=\"aa01419_html_a379120681233502a5b38c8d6329ea5a0\"><div class=\"ttname\"><a href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::vertexIndices</a></div><div class=\"ttdeci\">virtual IndexVector vertexIndices() const =0</div></div>\n+<div class=\"ttc\" id=\"aa01419_html_a4b592b86f4d309dc2c005cc19600f5de\"><div class=\"ttname\"><a href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:217</div></div>\n+<div class=\"ttc\" id=\"aa01419_html_a677506e9076476d046968beb2675f5ee\"><div class=\"ttname\"><a href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:218</div></div>\n+<div class=\"ttc\" id=\"aa01419_html_ae46fcb7a9b1fdcd956a57c4dde910337\"><div class=\"ttname\"><a href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::~VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdeci\">virtual ~VirtualRefinementSubEntityIteratorBackSpecial()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:222</div></div>\n+<div class=\"ttc\" id=\"aa01423_html\"><div class=\"ttname\"><a href=\"a01423.html\">Dune::VirtualRefinement::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:231</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_a019bd767100a60a95a8fd187f0ce5314\"><div class=\"ttname\"><a href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\">Dune::VirtualRefinement::SubEntityIteratorBack::index</a></div><div class=\"ttdeci\">virtual int index() const =0</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_a02264daad490f7a8cbd5469eb3271b35\"><div class=\"ttname\"><a href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">Dune::VirtualRefinement::SubEntityIteratorBack::This</a></div><div class=\"ttdeci\">Refinement::template SubEntityIteratorBack< codimension > This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:234</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_a38ffce9ca308dbbf07ae3281a35ac4d0\"><div class=\"ttname\"><a href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\">Dune::VirtualRefinement::SubEntityIteratorBack::clone</a></div><div class=\"ttdeci\">virtual This * clone() const =0</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_a3c8ceabd6e46aa63f2bce69c5344be3b\"><div class=\"ttname\"><a href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">Dune::VirtualRefinement::SubEntityIteratorBack::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:235</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_a710fcec3e4ca4ec26bb1b154edbdc243\"><div class=\"ttname\"><a href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\">Dune::VirtualRefinement::SubEntityIteratorBack::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:233</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_ac53973435fafdf9881323d0aac97b0ee\"><div class=\"ttname\"><a href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\">Dune::VirtualRefinement::SubEntityIteratorBack::operator==</a></div><div class=\"ttdeci\">virtual bool operator==(const This &other) const =0</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_acadf6e07787ce29cf8ed606c9c6b6b69\"><div class=\"ttname\"><a href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\">Dune::VirtualRefinement::SubEntityIteratorBack::coords</a></div><div class=\"ttdeci\">virtual CoordVector coords() const =0</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_ad50ced742e5d51c71368e2c82866d635\"><div class=\"ttname\"><a href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\">Dune::VirtualRefinement::SubEntityIteratorBack::~SubEntityIteratorBack</a></div><div class=\"ttdeci\">virtual ~SubEntityIteratorBack()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:237</div></div>\n+<div class=\"ttc\" id=\"aa01423_html_aee7d21a455c944582cc05610c60ec0d9\"><div class=\"ttname\"><a href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\">Dune::VirtualRefinement::SubEntityIteratorBack::operator++</a></div><div class=\"ttdeci\">virtual This & operator++()=0</div></div>\n+<div class=\"ttc\" id=\"aa01427_html\"><div class=\"ttname\"><a href=\"a01427.html\">Dune::VirtualRefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:261</div></div>\n+<div class=\"ttc\" id=\"aa01427_html_a2e8d2d47528c87c6114e78319bc71785\"><div class=\"ttname\"><a href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\">Dune::VirtualRefinementImp::nVertices</a></div><div class=\"ttdeci\">int nVertices(Dune::RefinementIntervals tag) const override</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:295</div></div>\n+<div class=\"ttc\" id=\"aa01427_html_a3feba26d593f8738df00e34e87d28459\"><div class=\"ttname\"><a href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\">Dune::VirtualRefinementImp::nElements</a></div><div class=\"ttdeci\">int nElements(Dune::RefinementIntervals tag) const override</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:320</div></div>\n+<div class=\"ttc\" id=\"aa01427_html_a5f8db4445cecb39df11e32eedf3802d2\"><div class=\"ttname\"><a href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\">Dune::VirtualRefinementImp::VirtualRefinement</a></div><div class=\"ttdeci\">Dune::VirtualRefinement< dimension, CoordType > VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:264</div></div>\n+<div class=\"ttc\" id=\"aa01427_html_aa79948de433d57541b36cc933e94cdf7\"><div class=\"ttname\"><a href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\">Dune::VirtualRefinementImp::instance</a></div><div class=\"ttdeci\">static VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > & instance()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:286</div></div>\n+<div class=\"ttc\" id=\"aa01427_html_ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\"><div class=\"ttname\"><a href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\">Dune::VirtualRefinementImp::StaticRefinement</a></div><div class=\"ttdeci\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension > StaticRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:263</div></div>\n+<div class=\"ttc\" id=\"aa01431_html\"><div class=\"ttname\"><a href=\"a01431.html\">Dune::VirtualRefinementImp::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:397</div></div>\n+<div class=\"ttc\" id=\"aa01431_html_a32c5fa96ddad5b822899233324013194\"><div class=\"ttname\"><a href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Dune::VirtualRefinementImp::SubEntityIteratorBack::Base</a></div><div class=\"ttdeci\">VirtualRefinement::template SubEntityIteratorBack< codimension > Base</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:401</div></div>\n+<div class=\"ttc\" id=\"aa01431_html_ad89e23cfcae3c0173d94a99873839470\"><div class=\"ttname\"><a href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">Dune::VirtualRefinementImp::SubEntityIteratorBack::This</a></div><div class=\"ttdeci\">VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::template SubEntityIteratorBack< codimension > This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:400</div></div>\n+<div class=\"ttc\" id=\"aa01431_html_ae23101ad72e3e61cecb024b4a8fd93c8\"><div class=\"ttname\"><a href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">Dune::VirtualRefinementImp::SubEntityIteratorBack::BackendIterator</a></div><div class=\"ttdeci\">StaticRefinement::template Codim< codimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:399</div></div>\n+<div class=\"ttc\" id=\"aa01431_html_ae2ac709858cf432870c2e809ff7a83e8\"><div class=\"ttname\"><a href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">Dune::VirtualRefinementImp::SubEntityIteratorBack::CoordVector</a></div><div class=\"ttdeci\">VirtualRefinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:402</div></div>\n+<div class=\"ttc\" id=\"aa01435_html\"><div class=\"ttname\"><a href=\"a01435.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:350</div></div>\n+<div class=\"ttc\" id=\"aa01443_html_a4d131d2a711038a3268dc7ee1d32b2c7\"><div class=\"ttname\"><a href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::Common</a></div><div class=\"ttdeci\">VirtualRefinementImp::template SubEntityIteratorBack< 0 > Common</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:368</div></div>\n+<div class=\"ttc\" id=\"aa01443_html_a6b417d8cdd4f5de9442d50c80f117181\"><div class=\"ttname\"><a href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::IndexVector</a></div><div class=\"ttdeci\">RefinementBase::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:371</div></div>\n+<div class=\"ttc\" id=\"aa01443_html_a752e01cc47fd671b355166b3fec55dbf\"><div class=\"ttname\"><a href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::RefinementBase</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > RefinementBase</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:370</div></div>\n+<div class=\"ttc\" id=\"aa01443_html_ac49e801de12f13cbf670de6232e79b1d\"><div class=\"ttname\"><a href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::VirtualRefinementImp</a></div><div class=\"ttdeci\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > VirtualRefinementImp</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:367</div></div>\n+<div class=\"ttc\" id=\"aa01443_html_ad0ff77017e5cc536c68c13e60f3e059e\"><div class=\"ttname\"><a href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::StaticRefinement</a></div><div class=\"ttdeci\">VirtualRefinementImp::StaticRefinement StaticRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:369</div></div>\n+<div class=\"ttc\" id=\"aa01447_html\"><div class=\"ttname\"><a href=\"a01447.html\">Dune::RefinementBuilder</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:518</div></div>\n+<div class=\"ttc\" id=\"aa01447_html_a0f9c5e631b5add9de81e7c19f3c457e6\"><div class=\"ttname\"><a href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">Dune::RefinementBuilder::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:522</div></div>\n+<div class=\"ttc\" id=\"aa01451_html_a245f3e9bc5f4d6bc4b46bc4328178e42\"><div class=\"ttname\"><a href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\">Dune::RefinementBuilder< 1, CoordType >::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:573</div></div>\n+<div class=\"ttc\" id=\"aa01455_html_a0752aacc5bd2bd6f85f4dbe10a3131f8\"><div class=\"ttname\"><a href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\">Dune::RefinementBuilder< 3, CoordType >::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:595</div></div>\n+<div class=\"ttc\" id=\"aa01459_html\"><div class=\"ttname\"><a href=\"a01459.html\">Dune::VirtualRefinement</a></div><div class=\"ttdoc\">VirtualRefinement base class.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:283</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a07310e9597e483f2314467b980796470\"><div class=\"ttname\"><a href=\"a01459.html#a07310e9597e483f2314467b980796470\">Dune::VirtualRefinement::VertexIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< dimension > VertexIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:307</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a48a0b20da4d3a262b8aa94999c03ec4c\"><div class=\"ttname\"><a href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">Dune::VirtualRefinement::vBegin</a></div><div class=\"ttdeci\">VertexIterator vBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:38</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a58217a0701cdf7458ab63b09948dcd18\"><div class=\"ttname\"><a href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">Dune::VirtualRefinement::eBegin</a></div><div class=\"ttdeci\">ElementIterator eBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:54</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a76668e0abfac920b12f8d34feca43054\"><div class=\"ttname\"><a href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">Dune::VirtualRefinement::eEnd</a></div><div class=\"ttdeci\">ElementIterator eEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:62</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a7e14c2a7c4d16a2c1760f6e447246f1c\"><div class=\"ttname\"><a href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">Dune::VirtualRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:290</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_a842f9ea89c5bc1de43825973ae9ee7f8\"><div class=\"ttname\"><a href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">Dune::VirtualRefinement::vEnd</a></div><div class=\"ttdeci\">VertexIterator vEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:46</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ac1bbbac41ae70b73baf8f702419c5d87\"><div class=\"ttname\"><a href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">Dune::VirtualRefinement::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdoc\">The CoordVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:297</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_ad5eaa227e5deeb688dad02b635829455\"><div class=\"ttname\"><a href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">Dune::VirtualRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:288</div></div>\n+<div class=\"ttc\" id=\"aa01459_html_af14612af29e934d64e11384e81b414f3\"><div class=\"ttname\"><a href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">Dune::VirtualRefinement::ElementIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< 0 > ElementIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:308</div></div>\n+<div class=\"ttc\" id=\"aa01463_html\"><div class=\"ttname\"><a href=\"a01463.html\">Dune::VirtualRefinement::Codim</a></div><div class=\"ttdoc\">codim database of VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:367</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,53 +1,1002 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-dimension.hh\n+virtualrefinement.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_DIMENSION_HH\n-6#define DUNE_GEOMETRY_DIMENSION_HH\n-7\n-8#include <type_traits>\n-9\n-10namespace _\bD_\bu_\bn_\be {\n-11\n-13 template<int dim>\n-_\b1_\b4 struct _\bD_\bi_\bm\n-15 : public std::integral_constant<int,dim>\n-16 {\n-_\b1_\b7 typedef _\bD_\bi_\bm _\bt_\by_\bp_\be;\n-18 };\n-19\n-21 template<int codim>\n-_\b2_\b2 struct _\bC_\bo_\bd_\bi_\bm\n-23 : public std::integral_constant<int,codim>\n-24 {\n-_\b2_\b5 typedef _\bC_\bo_\bd_\bi_\bm _\bt_\by_\bp_\be;\n-26 };\n-27\n-28}\n-29\n-30#endif // DUNE_GEOMETRY_DIMENSION_HH\n+5\n+6#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n+_\b7#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n+8\n+14#include <cassert>\n+15#include <typeinfo>\n+16\n+17#include <dune/common/exceptions.hh>\n+18#include <dune/common/fvector.hh>\n+19#include <dune/common/iteratorfacades.hh>\n+20\n+21#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n+22#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n+23\n+24namespace _\bD_\bu_\bn_\be\n+25{\n+26 // //////////////////////////////////////////\n+27 //\n+28 // The virtual base class and its iterators\n+29 //\n+30\n+31 //\n+32 // Refinement\n+33 //\n+34\n+35 template<int dimension, class CoordType>\n+36 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b3_\b7 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+38_\b _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+39 {\n+40 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(vBeginBack(tag));\n+41 }\n+42\n+43 template<int dimension, class CoordType>\n+44 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b4_\b5 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+46_\b _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+47 {\n+48 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(vEndBack(tag));\n+49 }\n+50\n+51 template<int dimension, class CoordType>\n+52 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b5_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+54_\b _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+55 {\n+56 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(eBeginBack(tag));\n+57 }\n+58\n+59 template<int dimension, class CoordType>\n+60 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b6_\b1 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+62_\b _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+63 {\n+64 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(eEndBack(tag));\n+65 }\n+66\n+67 //\n+68 // The iterators\n+69 //\n+70\n+71 template<int dimension, class CoordType, int codimension>\n+_\b7_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+73\n+74 // The iterator for vertices\n+75 template<int dimension, class CoordType>\n+_\b7_\b6 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n+dimension>\n+77 {};\n+78\n+79 // The iterator for elements\n+80 template<int dimension, class CoordType>\n+_\b8_\b1 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n+82 {\n+83 public:\n+_\b8_\b4 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b8_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bC_\bo_\bm_\bm_\bo_\bn;\n+_\b8_\b6 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+87\n+88 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+89 };\n+90\n+91 template<int dimension, class CoordType>\n+92 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+_\b9_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+94_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+95 {\n+96 return static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn *>(this)->backend->vertexIndices();\n+97 }\n+98\n+99 // The iterator common stuff\n+100 template<int dimension, class CoordType>\n+101 template<int codimension>\n+_\b1_\b0_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n+SubEntityIterator\n+103 : public ForwardIteratorFacade<typename VirtualRefinement<dimension,\n+CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n+104 public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n+codimension>\n+105 {\n+106 public:\n+_\b1_\b0_\b7 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b0_\b8 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\bT_\bh_\bi_\bs;\n+_\b1_\b0_\b9 typedef typename Refinement::template _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n+_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+_\b1_\b1_\b0 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+111\n+_\b1_\b1_\b2 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *backend);\n+_\b1_\b1_\b3 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(const _\bT_\bh_\bi_\bs &other);\n+_\b1_\b1_\b4 _\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br();\n+115\n+_\b1_\b1_\b6 _\bT_\bh_\bi_\bs &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(const _\bT_\bh_\bi_\bs &other);\n+117\n+_\b1_\b1_\b8 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n+_\b1_\b1_\b9 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt();\n+120\n+_\b1_\b2_\b1 int _\bi_\bn_\bd_\be_\bx() const;\n+122\n+123 // If you simply use an unqualified CoordVector here g++-4.2 chokes\n+124 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be\n+_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br::\n+_\b1_\b2_\b5 CoordVector _\bc_\bo_\bo_\br_\bd_\bs() const;\n+126 private:\n+127 friend class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension,\n+CoordType, codimension>;\n+128 _\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *backend;\n+129 };\n+130\n+131#ifndef DOXYGEN\n+132 template<int dimension, class CoordType>\n+133 template<int codimension>\n+134 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+135_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(IteratorBack *backend_)\n+136 : backend(backend_)\n+137 {}\n+138\n+139 template<int dimension, class CoordType>\n+140 template<int codimension>\n+141 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+142_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(const This &other)\n+143 : backend(other.backend->clone())\n+144 {}\n+145\n+146 template<int dimension, class CoordType>\n+147 template<int codimension>\n+148 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+149 ~SubEntityIterator()\n+150 {\n+151 delete backend;\n+152 }\n+153\n+154 template<int dimension, class CoordType>\n+155 template<int codimension>\n+156 typename VirtualRefinement<dimension, CoordType>::template\n+Codim<codimension>::SubEntityIterator &\n+157 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+158 operator=(const This &other)\n+159 {\n+160 delete backend;\n+161 backend = other.backend->clone();\n+162 }\n+163\n+164 template<int dimension, class CoordType>\n+165 template<int codimension>\n+166 bool\n+167 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+168 equals(const This &other) const\n+169 { return *backend == *(other.backend); }\n+170\n+171 template<int dimension, class CoordType>\n+172 template<int codimension>\n+173 void\n+174 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+175 increment()\n+176 {\n+177 ++*backend;\n+178 }\n+179\n+180 template<int dimension, class CoordType>\n+181 template<int codimension>\n+182 int\n+183 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+184 index() const\n+185 { return backend->index(); }\n+186\n+187 template<int dimension, class CoordType>\n+188 template<int codimension>\n+189 typename VirtualRefinement<dimension, CoordType>::template\n+Codim<codimension>::SubEntityIterator::CoordVector\n+190 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+191 coords() const\n+192 { return backend->coords(); }\n+193#endif // DOXYGEN\n+194\n+195 //\n+196 // The iterator backend\n+197 //\n+198\n+199 template<int dimension, class CoordType, int codimension>\n+_\b2_\b0_\b0 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+201\n+202 // The iterator backend for vertices\n+203 template<int dimension, class CoordType>\n+_\b2_\b0_\b4 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n+dimension>\n+205 {\n+206 public:\n+207\n+_\b2_\b0_\b8 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl()\n+209 {}\n+210 };\n+211\n+212 // The iterator backend for elements\n+213 template<int dimension, class CoordType>\n+_\b2_\b1_\b4 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n+0>\n+215 {\n+216 public:\n+_\b2_\b1_\b7 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b1_\b8 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+219\n+_\b2_\b2_\b0 virtual _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const = 0;\n+221\n+_\b2_\b2_\b2 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl()\n+223 {}\n+224 };\n+225\n+226 // The iterator backend common stuff\n+227 template<int dimension, class CoordType>\n+228 template<int codimension>\n+_\b2_\b2_\b9 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+230 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension,\n+CoordType, codimension>\n+231 {\n+232 public:\n+_\b2_\b3_\b3 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b3_\b4 typedef typename Refinement::template _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n+_\bT_\bh_\bi_\bs;\n+_\b2_\b3_\b5 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+236\n+_\b2_\b3_\b7 virtual _\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk() {}\n+238\n+_\b2_\b3_\b9 virtual _\bT_\bh_\bi_\bs *_\bc_\bl_\bo_\bn_\be() const = 0;\n+240\n+_\b2_\b4_\b1 virtual bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bT_\bh_\bi_\bs &other) const = 0;\n+_\b2_\b4_\b2 virtual _\bT_\bh_\bi_\bs &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+() = 0;\n+243\n+_\b2_\b4_\b4 virtual int _\bi_\bn_\bd_\be_\bx() const = 0;\n+_\b2_\b4_\b5 virtual _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bc_\bo_\bo_\br_\bd_\bs() const = 0;\n+246 };\n+247\n+248 // /////////////////////////////////////////////////\n+249 //\n+250 // The derived classes and their iterator backends\n+251 //\n+252\n+253 //\n+254 // The refinement implementation\n+255 //\n+256\n+257 template<unsigned topologyId, class CoordType,\n+258 unsigned coerceToId, int dimension>\n+_\b2_\b5_\b9 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+260 : public _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>\n+261 {\n+262 public:\n+_\b2_\b6_\b3 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b6_\b4 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+265\n+266 template<int codimension>\n+267 class _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+268\n+269 int nVertices(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+270\n+271 int nElements(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+272\n+273 static _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n+&instance();\n+274 private:\n+275 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp() {}\n+276\n+277 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *vBeginBack(_\bD_\bu_\bn_\be_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+278 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *vEndBack(_\bD_\bu_\bn_\be_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+279 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *eBeginBack(_\bD_\bu_\bn_\be_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+280 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *eEndBack(_\bD_\bu_\bn_\be_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n+281 };\n+282\n+283 template<unsigned topologyId, class CoordType,\n+284 unsigned coerceToId, int dimension>\n+285 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension> &\n+_\b2_\b8_\b6 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be()\n+287 {\n+288 static _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp instance_{};\n+289 return instance_;\n+290 }\n+291\n+292 template<unsigned topologyId, class CoordType,\n+293 unsigned coerceToId, int dimension>\n+_\b2_\b9_\b4 int _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+295_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+296 {\n+297 return _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(tag);\n+298 }\n+299\n+300 template<unsigned topologyId, class CoordType,\n+301 unsigned coerceToId, int dimension>\n+302 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n+303 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+304_\b _\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+305 {\n+306 return new SubEntityIteratorBack<dimension>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn(tag));\n+307 }\n+308\n+309 template<unsigned topologyId, class CoordType,\n+310 unsigned coerceToId, int dimension>\n+311 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n+312 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::\n+313 vEndBack(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+314 {\n+315 return new SubEntityIteratorBack<dimension>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd(tag));\n+316 }\n+317\n+318 template<unsigned topologyId, class CoordType,\n+319 unsigned coerceToId, int dimension>\n+_\b3_\b2_\b0 int _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+321 {\n+322 return _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(tag);\n+323 }\n+324\n+325 template<unsigned topologyId, class CoordType,\n+326 unsigned coerceToId, int dimension>\n+327 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n+328 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+329_\b _\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+330 {\n+331 return new SubEntityIteratorBack<0>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn(tag));\n+332 }\n+333\n+334 template<unsigned topologyId, class CoordType,\n+335 unsigned coerceToId, int dimension>\n+336 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n+337 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::\n+338 eEndBack(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n+339 {\n+340 return new SubEntityIteratorBack<0>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd(tag));\n+341 }\n+342\n+343 //\n+344 // The iterator backend implementation\n+345 //\n+346\n+347 // The iterator backend implementation specialties\n+348 template<unsigned topologyId, class CoordType,\n+349 unsigned coerceToId, int dimension, int codimension>\n+_\b3_\b5_\b0 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+351\n+352 // The iterator backend implementation specialties for vertices\n+353 template<unsigned topologyId, class CoordType,\n+354 unsigned coerceToId, int dimension>\n+_\b3_\b5_\b5 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n+CoordType, coerceToId, dimension, dimension>\n+356 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::template\n+SubEntityIteratorBack<dimension>\n+357 {};\n+358\n+359 // The iterator backend implementation specialties for elements\n+360\n+361 template<unsigned topologyId, class CoordType,\n+362 unsigned coerceToId, int dimension>\n+_\b3_\b6_\b3 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n+CoordType, coerceToId, dimension, 0>\n+364 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::template\n+SubEntityIteratorBack<0>\n+365 {\n+366 public:\n+_\b3_\b6_\b7 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp;\n+_\b3_\b6_\b8 typedef typename VirtualRefinementImp::template SubEntityIteratorBack<0>\n+_\bC_\bo_\bm_\bm_\bo_\bn;\n+_\b3_\b6_\b9 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b3_\b7_\b0 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\ba_\bs_\be;\n+_\b3_\b7_\b1 typedef typename RefinementBase::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+372\n+373 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+374 };\n+375\n+376 template<unsigned topologyId, class CoordType,\n+377 unsigned coerceToId, int dimension>\n+378 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+_\b3_\b7_\b9 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b>_\b:_\b:\n+380_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+381 {\n+382 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vIndices;\n+383 vIndices.reserve(StaticRefinement::IndexVector::dimension);\n+384\n+385 typename _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br sIndices = static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn\n+*>(this)->backend.vertexIndices();\n+386 for(int i = 0; i < StaticRefinement::IndexVector::dimension; ++i)\n+387 vIndices.push_back(sIndices[i]);\n+388 return vIndices;\n+389 }\n+390\n+391 // The shared iterator backend implementation\n+392 template<unsigned topologyId, class CoordType,\n+393 unsigned coerceToId, int dimension>\n+394 template<int codimension>\n+_\b3_\b9_\b5 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<topologyId, CoordType, coerceToId, dimension>::\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+396 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n+CoordType, coerceToId, dimension, codimension>\n+397 {\n+398 public:\n+_\b3_\b9_\b9 typedef typename StaticRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b4_\b0_\b0 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bT_\bh_\bi_\bs;\n+_\b4_\b0_\b1 typedef typename VirtualRefinement::template\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bB_\ba_\bs_\be;\n+_\b4_\b0_\b2 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+403\n+404 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br &backend);\n+405 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bT_\bh_\bi_\bs &other);\n+406\n+407 _\bB_\ba_\bs_\be *clone() const;\n+408\n+409 bool operator==(const _\bB_\ba_\bs_\be &other) const;\n+410 _\bB_\ba_\bs_\be &operator++();\n+411\n+412 int index() const;\n+_\b4_\b1_\b3 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+414\n+415 private:\n+416 friend class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n+CoordType, coerceToId, dimension, codimension>;\n+417 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br backend;\n+418 };\n+419\n+420 template<unsigned topologyId, class CoordType,\n+421 unsigned coerceToId, int dimension>\n+422 template<int codimension>\n+_\b4_\b2_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+424_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br &backend_)\n+425 : backend(backend_)\n+426 {}\n+427\n+428 template<unsigned topologyId, class CoordType,\n+429 unsigned coerceToId, int dimension>\n+430 template<int codimension>\n+_\b4_\b3_\b1 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+432_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bT_\bh_\bi_\bs &other)\n+433 : _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId, CoordType,\n+coerceToId, dimension, codimension>(other),\n+434 backend(other.backend)\n+435 {}\n+436\n+437 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n+dimension>\n+438 template<int codimension>\n+439 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bB_\ba_\bs_\be *\n+_\b4_\b4_\b0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+441_\b _\bc_\bl_\bo_\bn_\be() const\n+442 { return new _\bT_\bh_\bi_\bs(*this); }\n+443\n+444 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n+dimension>\n+445 template<int codimension>\n+446 bool\n+_\b4_\b4_\b7 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+448_\b _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bB_\ba_\bs_\be &other) const\n+449 {\n+450 try {\n+451 return backend == dynamic_cast<const _\bT_\bh_\bi_\bs &>(other).backend;\n+452 }\n+453 catch(const std::bad_cast&)\n+454 {\n+455 return false;\n+456 }\n+457 }\n+458\n+459 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n+dimension>\n+460 template<int codimension>\n+461 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bB_\ba_\bs_\be &\n+_\b4_\b6_\b2 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+463_\b _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+()\n+464 {\n+465 ++backend;\n+466 return *this;\n+467 }\n+468\n+469 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n+dimension>\n+470 template<int codimension>\n+471 int\n+_\b4_\b7_\b2 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+473_\b _\bi_\bn_\bd_\be_\bx() const\n+474 { return backend.index(); }\n+475\n+476 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n+dimension>\n+477 template<int codimension>\n+478 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b4_\b7_\b9 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+480_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+481 { return backend.coords(); }\n+482\n+483 // ////////////////////////\n+484 //\n+485 // The refinement builder\n+486 //\n+487\n+488 template<int dimension, class CoordType>\n+489 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br;\n+490\n+501 template<int dimension, class CoordType>\n+502 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n+_\b5_\b0_\b3 _\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt(\n+504 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be geometryType,\n+506 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n+507 {\n+508 // Check that the user used valid geometry types\n+509 assert(geometryType._\bd_\bi_\bm() == dimension && coerceTo._\bd_\bi_\bm() == dimension);\n+510 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd( geometryType._\bi_\bd(),\n+coerceTo._\bi_\bd() );\n+511 }\n+512\n+513 // In principle the trick with the class is no longer necessary,\n+514 // but I'm keeping it in here so it will be easier to specialize\n+515 // buildRefinement when someone implements pyramids and prisms\n+516 template<int dimension, class CoordType>\n+_\b5_\b1_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br\n+518 {\n+519 public:\n+520 static\n+521 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n+_\b5_\b2_\b2 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n+523 {\n+524 topologyId &= ~1;\n+525 coerceToId &= ~1;\n+526\n+527 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n+528 constexpr unsigned idCube = GeometryTypes::cube(dimension).id() & ~1;\n+529\n+530 switch( topologyId )\n+531 {\n+532 //case GeometryType::simplex:\n+533 case idSimplex :\n+534 //switch( coerceTo )\n+535 switch( coerceToId )\n+536 {\n+537 //case GeometryType::simplex:\n+538 case idSimplex :\n+539 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+540 default :\n+541 break;\n+542 }\n+543 break;\n+544\n+545 //case GeometryType::cube:\n+546 case idCube :\n+547 switch( coerceToId )\n+548 {\n+549 case idSimplex :\n+550 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+551 case idCube :\n+552 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+553 default :\n+554 break;\n+555 }\n+556 break;\n+557\n+558 default :\n+559 break;\n+560 }\n+561 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n+\"\n+562 << coerceToId << \" >.\");\n+563 }\n+564 };\n+565\n+566 template<class CoordType>\n+_\b5_\b6_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br<1, CoordType>\n+568 {\n+569 static const std::size_t dimension = 1;\n+570 public:\n+571 static\n+572 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n+_\b5_\b7_\b3 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n+574 {\n+575 topologyId &= ~1;\n+576 coerceToId &= ~1;\n+577\n+578 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n+579\n+580 if (topologyId == 0 && coerceToId == 0)\n+581 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+582\n+583 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n+\"\n+584 << coerceToId << \" >.\");\n+585 }\n+586 };\n+587\n+588 template<class CoordType>\n+_\b5_\b8_\b9 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br<3, CoordType>\n+590 {\n+591 static const std::size_t dimension = 3;\n+592 public:\n+593 static\n+594 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n+_\b5_\b9_\b5 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n+596 {\n+597 topologyId &= ~1;\n+598 coerceToId &= ~1;\n+599\n+600 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n+601 constexpr unsigned idCube = GeometryTypes::cube(dimension).id() & ~1;\n+602 constexpr unsigned idPrism = GeometryTypes::prism.id() & ~1;\n+603 constexpr unsigned idPyramid = GeometryTypes::pyramid.id() & ~1;\n+604\n+605 switch( topologyId )\n+606 {\n+607 //case GeometryType::simplex:\n+608 case idSimplex :\n+609 //switch( coerceTo )\n+610 switch( coerceToId )\n+611 {\n+612 //case GeometryType::simplex:\n+613 case idSimplex :\n+614 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+615 default :\n+616 break;\n+617 }\n+618 break;\n+619\n+620 //case GeometryType::cube:\n+621 case idCube :\n+622 switch( coerceToId )\n+623 {\n+624 case idSimplex :\n+625 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+626 case idCube :\n+627 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+628 default :\n+629 break;\n+630 }\n+631 break;\n+632\n+633 //case GeometryType::prism:\n+634 case idPrism :\n+635 switch( coerceToId )\n+636 {\n+637 case idSimplex :\n+638 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bP_\br_\bi_\bs_\bm_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+639 default :\n+640 break;\n+641 }\n+642 break;\n+643\n+644 //case GeometryType::pyramid:\n+645 case idPyramid :\n+646 switch( coerceToId )\n+647 {\n+648 case idSimplex :\n+649 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bP_\by_\br_\ba_\bm_\bi_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n+650 default :\n+651 break;\n+652 }\n+653 break;\n+654\n+655 default :\n+656 break;\n+657 }\n+658 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n+\"\n+659 << coerceToId << \" >.\");\n+660 }\n+661 };\n+662\n+663} // namespace Dune\n+664\n+665#endif // DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n+_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n+This file simply includes all Refinement implementations so you don't have to\n+do them separately.\n+_\bt_\by_\bp_\be_\b._\bh_\bh\n+A unique label for each type of element that can occur in a grid.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm\n-Static tag representing a dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:16\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\bi_\bm_\b:_\b:_\bt_\by_\bp_\be\n-Dim type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:17\n+_\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType\n+geometryType, GeometryType coerceTo)\n+return a reference to the VirtualRefinement according to the parameters\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:503\n _\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n Static tag representing a codimension.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bt_\by_\bp_\be\n-Codim type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:25\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+Holds the number of refined intervals per axis needed for virtual and static\n+refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:94\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Wrap each Refinement implementation to get a consistent interface.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:141\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(Dune::RefinementIntervals tag)\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:247\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(Dune::RefinementIntervals tag)\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:237\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static int nElements(Dune::RefinementIntervals tag)\n+Get the number of Elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:227\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static int nVertices(Dune::RefinementIntervals tag)\n+Get the number of Vertices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:197\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(Dune::RefinementIntervals tag)\n+Get a VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:207\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+typedef IndexVector\n+The IndexVector of the Refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:177\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(Dune::RefinementIntervals tag)\n+Get a VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:217\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n+Unique label for each type of entities that can occur in DUNE grids.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n+constexpr unsigned int dim() const\n+Return dimension of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n+constexpr unsigned int id() const\n+Return the topology id of the type.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n+_\bC_\bo_\bm_\bm_\bo_\bn\n+Refinement::template Codim< 0 >::SubEntityIterator Common\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:85\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:84\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n+_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:86\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bs\n+VirtualRefinement< dimension, CoordType >::template Codim< codimension >::\n+SubEntityIterator::CoordVector coords() const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(const This &other)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+This & operator=(const This &other)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+int index() const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+~SubEntityIterator()\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(IteratorBack *backend)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+Refinement::template SubEntityIteratorBack< codimension > IteratorBack\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:109\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:110\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n+Refinement::template Codim< codimension >::SubEntityIterator This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:108\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n+bool equals(const This &other) const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:107\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n+void increment()\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:200\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+virtual ~VirtualRefinementSubEntityIteratorBackSpecial()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:208\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n+_\b>_\b:_\b:_\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs\n+virtual IndexVector vertexIndices() const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n+_\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:217\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n+_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:218\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n+_\b>_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+virtual ~VirtualRefinementSubEntityIteratorBackSpecial()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:222\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:231\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+virtual int index() const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bT_\bh_\bi_\bs\n+Refinement::template SubEntityIteratorBack< codimension > This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:234\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bc_\bl_\bo_\bn_\be\n+virtual This * clone() const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:235\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:233\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n+virtual bool operator==(const This &other) const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bs\n+virtual CoordVector coords() const =0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+virtual ~SubEntityIteratorBack()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:237\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+\n+virtual This & operator++()=0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:261\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+int nVertices(Dune::RefinementIntervals tag) const override\n+Get the number of Vertices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:295\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+int nElements(Dune::RefinementIntervals tag) const override\n+Get the number of Elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:320\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Dune::VirtualRefinement< dimension, CoordType > VirtualRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:264\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n+static VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > &\n+instance()\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:286\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension >\n+StaticRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:263\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:397\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bB_\ba_\bs_\be\n+VirtualRefinement::template SubEntityIteratorBack< codimension > Base\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:401\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bT_\bh_\bi_\bs\n+VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::template\n+SubEntityIteratorBack< codimension > This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:400\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+StaticRefinement::template Codim< codimension >::SubEntityIterator\n+BackendIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:399\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+VirtualRefinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:402\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:350\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n+VirtualRefinementImp::template SubEntityIteratorBack< 0 > Common\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:368\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+RefinementBase::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:371\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\ba_\bs_\be\n+VirtualRefinement< dimension, CoordType > RefinementBase\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:370\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >\n+VirtualRefinementImp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:367\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinementImp::StaticRefinement StaticRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:369\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:518\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n+static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n+unsigned coerceToId)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:522\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b1_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n+static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n+unsigned coerceToId)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:573\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b3_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n+static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n+unsigned coerceToId)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:595\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+VirtualRefinement base class.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:283\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+SubEntityIteratorBack< dimension > VertexIteratorBack\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:307\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+VertexIterator vBegin(Dune::RefinementIntervals tag) const\n+Get an VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:38\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+ElementIterator eBegin(Dune::RefinementIntervals tag) const\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:54\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n+ElementIterator eEnd(Dune::RefinementIntervals tag) const\n+Get an ElementIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:62\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+The ElementIterator of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:290\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n+VertexIterator vEnd(Dune::RefinementIntervals tag) const\n+Get an VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:46\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+The CoordVector of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:297\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+The VertexIterator of the VirtualRefinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:288\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n+SubEntityIteratorBack< 0 > ElementIteratorBack\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:308\n+_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+codim database of VirtualRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:367\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00233.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00233.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: mappedgeometry.hh File Reference</title>\n+<title>dune-geometry: simplex.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,65 +65,105 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n-<a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">mappedgeometry.hh File Reference</div></div>\n+<a href=\"#define-members\">Macros</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">simplex.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <limits></code><br />\n-<code>#include <optional></code><br />\n-<code>#include <stdexcept></code><br />\n-<code>#include <type_traits></code><br />\n-<code>#include <dune/common/copyableoptional.hh></code><br />\n-<code>#include <dune/common/exceptions.hh></code><br />\n-<code>#include <dune/common/fmatrix.hh></code><br />\n+\n+<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) \n+<a href=\"#details\">More...</a></p>\n+<div class=\"textblock\"><code>#include <algorithm></code><br />\n <code>#include <dune/common/fvector.hh></code><br />\n <code>#include <dune/common/math.hh></code><br />\n-<code>#include <dune/common/transpose.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00224_source.html\">dune/geometry/multilineargeometry.hh</a>></code><br />\n <code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00215_source.html\">dune/geometry/utility/algorithms.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00218_source.html\">dune/geometry/utility/convergence.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include "<a class=\"el\" href=\"a00236_source.html\">base.cc</a>"</code><br />\n </div>\n <p><a href=\"a00233_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01135.html\">Dune::MappedGeometry< Map, Geo ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Geometry parametrized by a LocalFunction and a LocalGeometry. <a href=\"a01135.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01335.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01343.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01347.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01351.html\">Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00274\" id=\"r_a00274\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html\">Dune::RefinementImp::Simplex</a></td></tr>\n+<tr class=\"memdesc:a00274\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:a944407dc4f6f9a372b10b69bbb5a0792\" id=\"r_a944407dc4f6f9a372b10b69bbb5a0792\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00233.html#a944407dc4f6f9a372b10b69bbb5a0792\">DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</a></td></tr>\n+<tr class=\"separator:a944407dc4f6f9a372b10b69bbb5a0792\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr class=\"memitem:ae7d03a34d359df9cee5b2c4e8bb6c4df\" id=\"r_ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memTemplParams\" colspan=\"2\">template<class Map , class Geo > </td></tr>\n-<tr class=\"memitem:ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#ae7d03a34d359df9cee5b2c4e8bb6c4df\">Dune::MappedGeometry</a> (const Map &, const Geo &) -> <a class=\"el\" href=\"a01135.html\">MappedGeometry</a>< Map, Geo ></td></tr>\n-<tr class=\"separator:ae7d03a34d359df9cee5b2c4e8bb6c4df\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a2b469172d0793dfae5154d94ef27e646\" id=\"r_a2b469172d0793dfae5154d94ef27e646\"><td class=\"memTemplParams\" colspan=\"2\">template<class Map , class Geo > </td></tr>\n-<tr class=\"memitem:a2b469172d0793dfae5154d94ef27e646\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a2b469172d0793dfae5154d94ef27e646\">Dune::MappedGeometry</a> (const Map &, const Geo &, bool) -> <a class=\"el\" href=\"a01135.html\">MappedGeometry</a>< Map, Geo ></td></tr>\n-<tr class=\"separator:a2b469172d0793dfae5154d94ef27e646\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr><td colspan=\"2\"><div class=\"groupHeader\">Utilities</div></td></tr>\n+<tr class=\"memitem:a24c58f3248cb543a0c221c3e9c4ac9bf\" id=\"r_a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension> </td></tr>\n+<tr class=\"memitem:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">int </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">Dune::RefinementImp::Simplex::pointIndex</a> (const FieldVector< int, dimension > &point)</td></tr>\n+<tr class=\"memdesc:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">calculate the index of a given gridpoint within a Kuhn0 simplex <br /></td></tr>\n+<tr class=\"separator:a24c58f3248cb543a0c221c3e9c4ac9bf\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a34aeb4b15c94db3e510c0b3e10940689\" id=\"r_a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memTemplParams\" colspan=\"2\">template<int n> </td></tr>\n+<tr class=\"memitem:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< int, n > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a> (int m)</td></tr>\n+<tr class=\"memdesc:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Calculate permutation from it's index. <br /></td></tr>\n+<tr class=\"separator:a34aeb4b15c94db3e510c0b3e10940689\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:aa6957a526f21902c037a5ff222b3f36a\" id=\"r_aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a> (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</td></tr>\n+<tr class=\"memdesc:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Map from the reference simplex to some Kuhn simplex. <br /></td></tr>\n+<tr class=\"separator:aa6957a526f21902c037a5ff222b3f36a\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:afd47205aa1691498b073d9681fb23f6d\" id=\"r_afd47205aa1691498b073d9681fb23f6d\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:afd47205aa1691498b073d9681fb23f6d\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">Dune::RefinementImp::Simplex::kuhnToReference</a> (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</td></tr>\n+<tr class=\"memdesc:afd47205aa1691498b073d9681fb23f6d\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Map from some Kuhn simplex to the reference simplex. <br /></td></tr>\n+<tr class=\"separator:afd47205aa1691498b073d9681fb23f6d\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) </p>\n+<p>See <a class=\"el\" href=\"a00259.html\">Refinement implementation for simplices</a>. </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"a944407dc4f6f9a372b10b69bbb5a0792\" name=\"a944407dc4f6f9a372b10b69bbb5a0792\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a944407dc4f6f9a372b10b69bbb5a0792\">◆ </a></span>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,43 +1,86 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-mappedgeometry.hh File Reference\n-#include <cassert>\n-#include <limits>\n-#include <optional>\n-#include <stdexcept>\n-#include <type_traits>\n-#include <dune/common/copyableoptional.hh>\n-#include <dune/common/exceptions.hh>\n-#include <dune/common/fmatrix.hh>\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n+simplex.cc File Reference\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices (triangles,\n+tetrahedrons...) _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <algorithm>\n #include <dune/common/fvector.hh>\n #include <dune/common/math.hh>\n-#include <dune/common/transpose.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n+#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bM_\ba_\bp_\b,_\b _\bG_\be_\bo_\b _\b>\n-\u00a0 Geometry parametrized by a LocalFunction and a LocalGeometry. _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n+ _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n+ _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx\n+\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices\n+ (triangles, tetrahedrons...)\n+\u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bR_\bI_\bD_\b__\bC_\bO_\bM_\bM_\bO_\bN_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bS_\bI_\bM_\bP_\bL_\bE_\bX_\b__\bC_\bC\n+\u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<class Map , class Geo >\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map &, const Geo &) -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by< Map, Geo >\n+Utilities\n+template<int dimension>\n+ int\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx\n+ (const FieldVector< int, dimension >\n+ &point)\n+\u00a0 calculate the index of a given gridpoint\n+ within a Kuhn0 simplex\n+\u00a0\n+template<int n>\n+ FieldVector< int, n >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n+ _\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn (int m)\n+\u00a0 Calculate permutation from it's index.\n+\u00a0\n+template<int dimension, class CoordType >\n+FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n+ _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn (FieldVector< CoordType,\n+ dimension > point, const FieldVector< int,\n+ dimension > &kuhn)\n+\u00a0 Map from the reference simplex to some\n+ Kuhn simplex.\n \u00a0\n-template<class Map , class Geo >\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map &, const Geo &, bool) -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by< Map,\n- Geo >\n+template<int dimension, class CoordType >\n+FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:\n+ _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be (FieldVector< CoordType,\n+ dimension > point, const FieldVector< int,\n+ dimension > &kuhn)\n+\u00a0 Map from some Kuhn simplex to the\n+ reference simplex.\n \u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for simplices (triangles,\n+tetrahedrons...)\n+See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bs_\bi_\bm_\bp_\bl_\bi_\bc_\be_\bs.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGR\bRI\bID\bD_\b_C\bCO\bOM\bMM\bMO\bON\bN_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_S\bSI\bIM\bMP\bPL\bLE\bEX\bX_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00233_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00233_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: mappedgeometry.hh Source File</title>\n+<title>dune-geometry: simplex.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,331 +70,621 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">mappedgeometry.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">simplex.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00233.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00233.html#a944407dc4f6f9a372b10b69bbb5a0792\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <optional></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <stdexcept></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <type_traits></span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"comment\">// This file is part of DUNE, a Distributed and Unified Numerics Environment</span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"comment\">// This file is copyright (C) 2005 Jorrit Fahlke <jorrit@jorrit.de></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"comment\">// This file is licensed under version 2 of the GNU General Public License,</span></div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"comment\">// with a special "runtime exception." See COPYING at the top of the source</span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"comment\">// tree for the full licence.</span></div>\n <div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/copyableoptional.hh></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/transpose.hh></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00170.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00212.html\">dune/geometry/quadraturerules.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00215.html\">dune/geometry/utility/algorithms.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00218.html\">dune/geometry/utility/convergence.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> </div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n-<div class=\"foldopen\" id=\"foldopen00064\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html\"> 64</a></span><span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a></div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span>{</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span><span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\"> 68</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> = <span class=\"keyword\">typename</span> Geo::LocalCoordinate;</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\"> 71</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> = std::remove_reference_t<decltype(std::declval<Map>()(std::declval<typename Geo::GlobalCoordinate>()))>;</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\"> 74</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">ctype</a> = <span class=\"keyword\">typename</span> Geo::ctype;</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\"> 77</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">mydimension</a> = LocalCoordinate::size();</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\"> 80</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\">coorddimension</a> = GlobalCoordinate::size();</div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> </div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\"> 83</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> = std::remove_reference_t<decltype(Dune::power(std::declval<ctype>(),<a class=\"code hl_variable\" href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">mydimension</a>))>;</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\"> 86</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Jacobian</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\"> 89</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">JacobianTransposed</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> </div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\"> 92</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> </div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\"> 95</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">JacobianInverseTransposed</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span><span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">using </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a> = <a class=\"code hl_struct\" href=\"a01099.html\">Dune::ReferenceElements<ctype, mydimension></a>;</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">using </span>ReferenceElement = <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements::ReferenceElement</a>;</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span><span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\"> 102</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\">MatrixHelper</a> = Impl::FieldMatrixHelper<ctype>;</div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> </div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"comment\">// type of the mapping representation the geometry parametrization</span></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\"> 105</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Mapping</a> = Map;</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> </div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"comment\">// type of the geometry that is wrapped</span></div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\"> 108</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a> = Geo;</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> </div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// type of a mapping representing the derivative of `Map` w.r.t. `GlobalCoordinate`</span></div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ade44883006b5b261a4261133464672bd\"> 111</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01135.html#ade44883006b5b261a4261133464672bd\">DerivativeMapping</a> = std::remove_reference_t<decltype(derivative(std::declval<Map>()))>;</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span><span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>Geo_, <span class=\"keyword\">class </span>Map_,</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> std::enable_if_t<Dune::IsInteroperable<Map, Map_>::value, <span class=\"keywordtype\">int</span>> = 0,</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> std::enable_if_t<Dune::IsInteroperable<Geo, Geo_>::value, <span class=\"keywordtype\">int</span>> = 0></div>\n-<div class=\"foldopen\" id=\"foldopen00125\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\"> 125</a></span> <a class=\"code hl_function\" href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\">MappedGeometry</a> (Map_&& mapping, Geo_&& geometry, <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a> = <span class=\"keyword\">false</span>)</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> : mapping_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Map_>(mapping))</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> , dMapping_(derivative(*mapping_))</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> , geometry_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Geo_>(geometry))</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> , affine_(<a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a>)</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00137\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#adc9100c25955043886248662db0039a8\"> 137</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">return</span> affine_;</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00143\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\"> 143</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <span class=\"keywordflow\">return</span> geometry_.type();</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00149\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\"> 149</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">corners</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> geometry_.corners();</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00155\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\"> 155</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\">corner</a> (<span class=\"keywordtype\">int</span> i)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> assert( (i >= 0) && (i < <a class=\"code hl_function\" href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">corners</a>()) );</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.corner(i));</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00162\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\"> 162</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\">center</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.center());</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00176\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\"> 176</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> <span class=\"keywordflow\">return</span> mapping()(geometry_.global(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00197\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\"> 197</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a>& y, Impl::GaussNewtonOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> {</div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> x = <a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a>().position(0,0);</div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> Impl::GaussNewtonErrorCode err = Impl::gaussNewton(</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a>(local); },</div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a>(local); },</div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> y, x, opts</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> );</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> </div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">if</span> (err != Impl::GaussNewtonErrorCode::OK)</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> DUNE_THROW(Dune::Exception,</div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <span class=\"stringliteral\">"Local coordinate can not be recovered from global coordinate, error code = "</span> << <span class=\"keywordtype\">int</span>(err) << <span class=\"stringliteral\">"\\n"</span></div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> << <span class=\"stringliteral\">" (global(x) - y).two_norm() = "</span> << (<a class=\"code hl_function\" href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">global</a>(x) - y).two_norm()</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> << <span class=\"stringliteral\">" > tol = "</span> << opts.absTol);</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> x;</div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00225\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\"> 225</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">ctype</a> <a class=\"code hl_function\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">integrationElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keywordflow\">return</span> MatrixHelper::sqrtDetAAT(<a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00241\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\"> 241</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a> (Impl::ConvergenceOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol0 = <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a>(), 1));</div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01135.html#adc9100c25955043886248662db0039a8\">affine</a>())</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <span class=\"keywordflow\">return</span> vol0;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keyword\">using </span>std::abs;</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> p = 2; p < opts.maxIt; ++p) {</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol1 = <a class=\"code hl_function\" href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">type</a>(), p));</div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keywordflow\">if</span> (abs(vol1 - vol0) < opts.absTol)</div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordflow\">return</span> vol1;</div>\n-<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> vol0 = vol1;</div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> }</div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"keywordflow\">return</span> vol0;</div>\n-<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span><span class=\"preprocessor\">#include <algorithm></span></div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> </div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00224.html\">dune/geometry/multilineargeometry.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> </div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00236.html\">base.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> </div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> <span class=\"keyword\">namespace </span>RefinementImp {</div>\n <div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00259\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\"> 259</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> <a class=\"code hl_function\" href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\">volume</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, mydimension></a>& quadRule)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> <a class=\"code hl_typedef\" href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Volume</a> vol(0);</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keywordflow\">for</span> (<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& qp : quadRule)</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> vol += <a class=\"code hl_function\" href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">integrationElement</a>(qp.position()) * qp.weight();</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> <span class=\"keywordflow\">return</span> vol;</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00272\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\"> 272</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Jacobian</a> <a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">auto</span>&& jLocal = geometry_.jacobian(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>);</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <span class=\"keyword\">auto</span>&& jMapping = (*dMapping_)(geometry_.global(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> <span class=\"keywordflow\">return</span> jMapping * jLocal;</div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00284\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\"> 284</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">jacobianTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordflow\">return</span> transpose(<a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00296\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\"> 296</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">jacobianInverse</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <a class=\"code hl_typedef\" href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">JacobianInverse</a> out;</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> MatrixHelper::leftInvA(<a class=\"code hl_function\" href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">jacobian</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>), out);</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">return</span> out;</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> }</div>\n-</div>\n+<div class=\"foldopen\" id=\"foldopen00264\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html\"> 264</a></span> <span class=\"keyword\">namespace </span>Simplex {</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> </div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"comment\">// //////////////////</span></div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00280\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\"> 280</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(<span class=\"keyword\">const</span> FieldVector<int, dimension> &point)</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> {</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keywordtype\">int</span> index = 0;</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> index += Dune::binomial(dimension-i + point[i]-1, dimension-i);</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">return</span> index;</div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> n></div>\n+<div class=\"foldopen\" id=\"foldopen00293\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\"> 293</a></span> FieldVector<int, n> <a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">getPermutation</a>(<span class=\"keywordtype\">int</span> m)</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> {</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> FieldVector<int, n> perm;</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < n; ++i)</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> perm[i] = i;</div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> </div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordtype\">int</span> base = 1;</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 1; i <= n; ++i)</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> base *= i;</div>\n <div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00310\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\"> 310</a></span> <a class=\"code hl_typedef\" href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\">jacobianInverseTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordflow\">return</span> transpose(<a class=\"code hl_function\" href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">jacobianInverse</a>(<a class=\"code hl_function\" href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00316\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\"> 316</a></span> <span class=\"keyword\">friend</span> ReferenceElement <a class=\"code hl_friend\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">referenceElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a>& geometry)</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> {</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keywordflow\">return</span> geometry.<a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a>();</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> </div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"comment\">// the internal stored reference element</span></div>\n-<div class=\"foldopen\" id=\"foldopen00323\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\"> 323</a></span> ReferenceElement <a class=\"code hl_function\" href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">refElement</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_friend\" href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">referenceElement</a>(geometry_);</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> </div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"comment\">// internal reference to the stored mapping</span></div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Mapping</a>& mapping ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">return</span> *mapping_;</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> }</div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"comment\">// internal reference to the wrapped geometry</span></div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a>& geometry ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> geometry_;</div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span><span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> CopyableOptional<Mapping> mapping_;</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> CopyableOptional<DerivativeMapping> dMapping_;</div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> </div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <a class=\"code hl_typedef\" href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Geometry</a> geometry_;</div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keywordtype\">bool</span> affine_;</div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span>};</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = n; i > 0; --i) {</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> base /= i;</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordtype\">int</span> d = m / base;</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> m %= base;</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> <span class=\"keywordtype\">int</span> t = perm[i-1]; perm[i-1] = perm[i-1-d]; perm[i-1-d] = t;</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> }</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keywordflow\">return</span> perm;</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> </div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"comment\">// map between the reference simplex and some arbitrary kuhn simplex (denoted by it's permutation)</span></div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> FieldVector<CoordType, dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00322\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\"> 322</a></span> <a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">referenceToKuhn</a>( </div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> FieldVector<CoordType, dimension> point,</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">const</span> FieldVector<int, dimension> &kuhn)</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> {</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i > 0; --i)</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> point[kuhn[i-1]] += point[kuhn[i]];</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> point;</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> FieldVector<CoordType, dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00341\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\"> 341</a></span> <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>( </div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> FieldVector<CoordType, dimension> point,</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keyword\">const</span> FieldVector<int, dimension> &kuhn)</div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> {</div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension - 1; ++i)</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> point[kuhn[i]] -= point[kuhn[i+1]];</div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">return</span> point;</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> }</div>\n </div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> </div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span><span class=\"comment\">// deduction guides</span></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#ae7d03a34d359df9cee5b2c4e8bb6c4df\"> 357</a></span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a> (<span class=\"keyword\">const</span> Map&, <span class=\"keyword\">const</span> Geo&)</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> -> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry<Map,Geo></a>;</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Map, <span class=\"keyword\">class</span> Geo></div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a2b469172d0793dfae5154d94ef27e646\"> 361</a></span><a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry</a> (<span class=\"keyword\">const</span> Map&, <span class=\"keyword\">const</span> Geo&, <span class=\"keywordtype\">bool</span>)</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> -> <a class=\"code hl_class\" href=\"a01135.html\">MappedGeometry<Map,Geo></a>;</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span>} <span class=\"comment\">// end namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"comment\">// /////////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"comment\">// refinement implementation for simplices</span></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00360\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html\"> 360</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a></div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> {</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\"> 363</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a> = dimension_;</div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\"> 364</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\">ctype</a>;</div>\n <div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> </div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_MAPPEDGEOMETRY_HH</span></div>\n-<div class=\"ttc\" id=\"aa00170_html\"><div class=\"ttname\"><a href=\"a00170.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01335.html\">Codim</a>;</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\"> 368</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01335.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\"> 369</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\"> 370</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01335.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\"> 371</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> </div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> </div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00384\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01335.html\"> 384</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01335.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> {</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// We don't need the caching, but the uncached MultiLinearGeometry has bug FS#1209</span></div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01335.html#addf3e4e65918928613e6339bf7586792\"> 388</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01159.html\">Dune::CachedMultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01335.html#addf3e4e65918928613e6339bf7586792\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> </div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00393\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\"> 393</a></span> <a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span><a class=\"code hl_function\" href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> {</div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keywordflow\">return</span> Dune::binomial(dimension + nIntervals, (<span class=\"keywordtype\">int</span>)dimension);</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> </div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00401\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\"> 401</a></span> <a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span><a class=\"code hl_function\" href=\"a01331.html#ab3422933c006c3554027298c991e743c\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> {</div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> </div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00409\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\"> 409</a></span> <a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span><a class=\"code hl_function\" href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> {</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00417\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\"> 417</a></span> <a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span><a class=\"code hl_function\" href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> {</div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals, <span class=\"keywordtype\">int</span>(dimension));</div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> </div>\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00425\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\"> 425</a></span> <a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span><a class=\"code hl_function\" href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> {</div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> </div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00433\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\"> 433</a></span> <a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span><a class=\"code hl_function\" href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> {</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> </div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"comment\">// //////////////</span></div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> <span class=\"comment\">// The iterator</span></div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01339.html\"> 445</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> </div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> <span class=\"comment\">// vertices</span></div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span> </div>\n+<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00450\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html\"> 450</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> {</div>\n+<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\"> 453</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\"> 454</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\"> 455</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\"> 456</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension></a> <a class=\"code hl_typedef\" href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> </div>\n+<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> </div>\n+<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> <span class=\"keywordtype\">void</span> increment();</div>\n+<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keywordtype\">bool</span> equals(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01343.html\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"> 462</span> </div>\n+<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> </div>\n+<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\"> 468</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a>;</div>\n+<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> </div>\n+<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\"> 470</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">size</a>;</div>\n+<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\"> 471</a></span> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a> <a class=\"code hl_variable\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">vertex</a>;</div>\n+<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"> 472</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span> </div>\n+<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00475\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a6b8d227461aa0e88f838071bbba17dcf\"> 475</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span><a class=\"code hl_class\" href=\"a01339.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> : size(nIntervals)</div>\n+<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> {</div>\n+<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"> 479</span> vertex[0] = (end) ? size + 1 : 0;</div>\n+<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 1; i < dimension; ++ i)</div>\n+<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span> vertex[i] = 0;</div>\n+<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> </div>\n+<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00486\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a64d9cfdc8afd0523d0f0f59a141409d5\"> 486</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span><a class=\"code hl_class\" href=\"a01339.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> {</div>\n+<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> assert(vertex[0] <= size);</div>\n+<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i >= 0; --i) {</div>\n+<div class=\"line\"><a id=\"l00491\" name=\"l00491\"></a><span class=\"lineno\"> 491</span> ++vertex[i];</div>\n+<div class=\"line\"><a id=\"l00492\" name=\"l00492\"></a><span class=\"lineno\"> 492</span> <span class=\"keywordflow\">if</span>(i == 0 || vertex[i] <= vertex[i-1])</div>\n+<div class=\"line\"><a id=\"l00493\" name=\"l00493\"></a><span class=\"lineno\"> 493</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00494\" name=\"l00494\"></a><span class=\"lineno\"> 494</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00495\" name=\"l00495\"></a><span class=\"lineno\"> 495</span> vertex[i] = 0;</div>\n+<div class=\"line\"><a id=\"l00496\" name=\"l00496\"></a><span class=\"lineno\"> 496</span> }</div>\n+<div class=\"line\"><a id=\"l00497\" name=\"l00497\"></a><span class=\"lineno\"> 497</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00498\" name=\"l00498\"></a><span class=\"lineno\"> 498</span> </div>\n+<div class=\"line\"><a id=\"l00499\" name=\"l00499\"></a><span class=\"lineno\"> 499</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00500\" name=\"l00500\"></a><span class=\"lineno\"> 500</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"foldopen\" id=\"foldopen00501\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a8541de6687d6be58685e73e88e10b5c2\"> 501</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span><a class=\"code hl_class\" href=\"a01339.html\"> equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01343.html\">This</a> &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"> 503</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <span class=\"keywordflow\">return</span> size == other.<a class=\"code hl_variable\" href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">size</a> && vertex == other.<a class=\"code hl_variable\" href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">vertex</a>;</div>\n+<div class=\"line\"><a id=\"l00505\" name=\"l00505\"></a><span class=\"lineno\"> 505</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> </div>\n+<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00509\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#aa89eae369f765aa82a19fe2353a04f6d\"> 509</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span><a class=\"code hl_class\" href=\"a01339.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> <a class=\"code hl_typedef\" href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Vertex</a> ref = <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>(vertex, getPermutation<dimension>(0));</div>\n+<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> </div>\n+<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> <a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a> coords;</div>\n+<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> coords[i] = CoordType(ref[i]) / size;</div>\n+<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"> 517</span> <span class=\"keywordflow\">return</span> coords;</div>\n+<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> </div>\n+<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n+<div class=\"foldopen\" id=\"foldopen00522\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#ad083036185dee6854d22a64897c5eb31\"> 522</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> std::vector<CoordVector> corners(1);</div>\n+<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> corners[0] = (<a class=\"code hl_typedef\" href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">CoordVector</a>)vertex;</div>\n+<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n+<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> </div>\n+<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00531\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01343.html#a3d08c1ebe3d142c363ce5dc489108979\"> 531</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span><a class=\"code hl_class\" href=\"a01339.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n+<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> </div>\n+<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">// elements</span></div>\n+<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> </div>\n+<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00540\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html\"> 540</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00541\" name=\"l00541\"></a><span class=\"lineno\"> 541</span> {</div>\n+<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\"> 543</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\"> 544</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\"> 545</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\"> 546</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\"> 547</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a> <a class=\"code hl_typedef\" href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> </div>\n+<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> </div>\n+<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keywordtype\">void</span> increment();</div>\n+<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> <span class=\"keywordtype\">bool</span> equals(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01347.html\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> </div>\n+<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> </div>\n+<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> </div>\n+<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> </div>\n+<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\"> 564</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a>;</div>\n+<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a555ec4f3b36a7c90faf0971538b96037\"> 565</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnIntervals = Dune::factorial(dimension);</div>\n+<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> </div>\n+<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\"> 567</a></span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> <a class=\"code hl_variable\" href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\">origin</a>;</div>\n+<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\"> 568</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\">kuhnIndex</a>;</div>\n+<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\"> 569</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">size</a>;</div>\n+<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\"> 570</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">index_</a>;</div>\n+<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> </div>\n+<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"> 573</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00574\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a2cd2a203ea33064decee8c9b995455e6\"> 574</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span><a class=\"code hl_class\" href=\"a01339.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> : kuhnIndex(0), size(nIntervals), index_(0)</div>\n+<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> {</div>\n+<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> origin[i] = 0;</div>\n+<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">if</span>(end) {</div>\n+<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> index_ = Refinement::nElements(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> origin[0] = size;</div>\n+<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> }</div>\n+<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> </div>\n+<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00588\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a1b0e6424f655aa63827348ad0b78f08f\"> 588</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"> 589</span><a class=\"code hl_class\" href=\"a01339.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> {</div>\n+<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> assert(origin[0] < size);</div>\n+<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> </div>\n+<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> ++index_;</div>\n+<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> </div>\n+<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"> 595</span> <span class=\"keywordflow\">while</span>(1) {</div>\n+<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> ++kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> <span class=\"keywordflow\">if</span>(kuhnIndex == nKuhnIntervals) {</div>\n+<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> kuhnIndex = 0;</div>\n+<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> <span class=\"comment\">// increment origin</span></div>\n+<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = dimension - 1; i >= 0; --i) {</div>\n+<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> ++origin[i];</div>\n+<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> <span class=\"keywordflow\">if</span>(i == 0 || origin[i] <= origin[i-1])</div>\n+<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> <span class=\"keywordflow\">else</span></div>\n+<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> origin[i] = 0;</div>\n+<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> }</div>\n+<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> }</div>\n+<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> </div>\n+<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> <span class=\"comment\">// test whether the current simplex has any corner outside the kuhn0 simplex</span></div>\n+<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);</div>\n+<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> corner = origin;</div>\n+<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> <span class=\"keywordtype\">bool</span> outside = <span class=\"keyword\">false</span>;</div>\n+<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i) {</div>\n+<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> <span class=\"comment\">// next corner</span></div>\n+<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> ++corner[perm[i]];</div>\n+<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> <span class=\"keywordflow\">if</span>(perm[i] > 0)</div>\n+<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> <span class=\"keywordflow\">if</span>(corner[perm[i]] > corner[perm[i]-1]) {</div>\n+<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> outside = <span class=\"keyword\">true</span>;</div>\n+<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> <span class=\"keywordflow\">break</span>;</div>\n+<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> }</div>\n+<div class=\"line\"><a id=\"l00621\" name=\"l00621\"></a><span class=\"lineno\"> 621</span> }</div>\n+<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keywordflow\">if</span>(!outside)</div>\n+<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> <span class=\"keywordflow\">return</span>;</div>\n+<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span> }</div>\n+<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> </div>\n+<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"foldopen\" id=\"foldopen00629\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#ae105d9f37c2442e31f4ddff75518c91b\"> 629</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00630\" name=\"l00630\"></a><span class=\"lineno\"> 630</span><a class=\"code hl_class\" href=\"a01339.html\"> equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01347.html\">This</a> &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> <span class=\"keywordflow\">return</span> size == other.<a class=\"code hl_variable\" href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">size</a> && index_ == other.<a class=\"code hl_variable\" href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">index_</a>;</div>\n+<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> </div>\n+<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00636\" name=\"l00636\"></a><span class=\"lineno\"> 636</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00637\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a02974d874acbce08ad56652b3a08833c\"> 637</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span><a class=\"code hl_class\" href=\"a01339.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <a class=\"code hl_typedef\" href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">IndexVector</a> indices;</div>\n+<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);</div>\n+<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <a class=\"code hl_typedef\" href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Vertex</a> vertex = origin;</div>\n+<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> indices[0] = <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n+<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < dimension; ++i) {</div>\n+<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> ++vertex[perm[i]];</div>\n+<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> indices[i+1] = <a class=\"code hl_function\" href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">pointIndex</a>(vertex);</div>\n+<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> }</div>\n+<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">if</span> (kuhnIndex%2 == 1)</div>\n+<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < (dimension+1)/2; ++i) {</div>\n+<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> <span class=\"keywordtype\">int</span> t = indices[i];</div>\n+<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> indices[i] = indices[dimension-i];</div>\n+<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> indices[dimension-i] = t;</div>\n+<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> }</div>\n+<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> <span class=\"keywordflow\">return</span> indices;</div>\n+<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> </div>\n+<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00659\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a555a1436c31fc7c10a430e486c8b61a9\"> 659</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span><a class=\"code hl_class\" href=\"a01339.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> <span class=\"keywordflow\">return</span> index_;</div>\n+<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> </div>\n+<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00666\" name=\"l00666\"></a><span class=\"lineno\"> 666</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00667\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00667\" name=\"l00667\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a5e35e82e5fee1b48a7d403a8ae4ae9ec\"> 667</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00668\" name=\"l00668\"></a><span class=\"lineno\"> 668</span><a class=\"code hl_class\" href=\"a01339.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00669\" name=\"l00669\"></a><span class=\"lineno\"> 669</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00670\" name=\"l00670\"></a><span class=\"lineno\"> 670</span> <span class=\"keywordflow\">return</span> global(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements<CoordType, dimension></a></div>\n+<div class=\"line\"><a id=\"l00671\" name=\"l00671\"></a><span class=\"lineno\"> 671</span> ::simplex().position(0,0));</div>\n+<div class=\"line\"><a id=\"l00672\" name=\"l00672\"></a><span class=\"lineno\"> 672</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00673\" name=\"l00673\"></a><span class=\"lineno\"> 673</span> </div>\n+<div class=\"line\"><a id=\"l00674\" name=\"l00674\"></a><span class=\"lineno\"> 674</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00675\" name=\"l00675\"></a><span class=\"lineno\"> 675</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n+<div class=\"foldopen\" id=\"foldopen00676\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00676\" name=\"l00676\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01347.html#a4acfc4c68bf7072b5df07d6c2b4befc3\"> 676</a></span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00677\" name=\"l00677\"></a><span class=\"lineno\"> 677</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00678\" name=\"l00678\"></a><span class=\"lineno\"> 678</span> std::vector<CoordVector> corners(dimension+1);</div>\n+<div class=\"line\"><a id=\"l00679\" name=\"l00679\"></a><span class=\"lineno\"> 679</span> <span class=\"keyword\">auto</span> refelem = <a class=\"code hl_function\" href=\"a01099.html#ab3bf8998f1dc95d6cd86755fb892110f\">ReferenceElements<CoordType, dimension>::simplex</a>();</div>\n+<div class=\"line\"><a id=\"l00680\" name=\"l00680\"></a><span class=\"lineno\"> 680</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00681\" name=\"l00681\"></a><span class=\"lineno\"> 681</span> corners[i] = global(refelem.position(i, dimension));</div>\n+<div class=\"line\"><a id=\"l00682\" name=\"l00682\"></a><span class=\"lineno\"> 682</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Geometry</a>(refelem.type(), corners);</div>\n+<div class=\"line\"><a id=\"l00683\" name=\"l00683\"></a><span class=\"lineno\"> 683</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00684\" name=\"l00684\"></a><span class=\"lineno\"> 684</span> </div>\n+<div class=\"line\"><a id=\"l00685\" name=\"l00685\"></a><span class=\"lineno\"> 685</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00686\" name=\"l00686\"></a><span class=\"lineno\"> 686</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"line\"><a id=\"l00687\" name=\"l00687\"></a><span class=\"lineno\"> 687</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00688\" name=\"l00688\"></a><span class=\"lineno\"> 688</span><a class=\"code hl_class\" href=\"a01339.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const </span>{</div>\n+<div class=\"line\"><a id=\"l00689\" name=\"l00689\"></a><span class=\"lineno\"> 689</span> CoordVector v =</div>\n+<div class=\"line\"><a id=\"l00690\" name=\"l00690\"></a><span class=\"lineno\"> 690</span> <a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">referenceToKuhn</a>(local, getPermutation<dimension>(kuhnIndex));</div>\n+<div class=\"line\"><a id=\"l00691\" name=\"l00691\"></a><span class=\"lineno\"> 691</span> v += origin;</div>\n+<div class=\"line\"><a id=\"l00692\" name=\"l00692\"></a><span class=\"lineno\"> 692</span> v /= (<span class=\"keyword\">typename</span> CoordVector::value_type)size;</div>\n+<div class=\"line\"><a id=\"l00693\" name=\"l00693\"></a><span class=\"lineno\"> 693</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">kuhnToReference</a>(v, getPermutation<dimension>(0));</div>\n+<div class=\"line\"><a id=\"l00694\" name=\"l00694\"></a><span class=\"lineno\"> 694</span> }</div>\n+<div class=\"line\"><a id=\"l00695\" name=\"l00695\"></a><span class=\"lineno\"> 695</span> </div>\n+<div class=\"line\"><a id=\"l00696\" name=\"l00696\"></a><span class=\"lineno\"> 696</span> <span class=\"comment\">// common</span></div>\n+<div class=\"line\"><a id=\"l00697\" name=\"l00697\"></a><span class=\"lineno\"> 697</span> </div>\n+<div class=\"line\"><a id=\"l00698\" name=\"l00698\"></a><span class=\"lineno\"> 698</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00699\" name=\"l00699\"></a><span class=\"lineno\"> 699</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00700\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00700\" name=\"l00700\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html\"> 700</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01331.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01335.html\">Codim</a><codimension>::SubEntityIterator</div>\n+<div class=\"line\"><a id=\"l00701\" name=\"l00701\"></a><span class=\"lineno\"> 701</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n+<div class=\"line\"><a id=\"l00702\" name=\"l00702\"></a><span class=\"lineno\"> 702</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00703\" name=\"l00703\"></a><span class=\"lineno\"> 703</span> {</div>\n+<div class=\"line\"><a id=\"l00704\" name=\"l00704\"></a><span class=\"lineno\"> 704</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00705\" name=\"l00705\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\"> 705</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00706\" name=\"l00706\"></a><span class=\"lineno\"> 706</span> </div>\n+<div class=\"line\"><a id=\"l00707\" name=\"l00707\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\"> 707</a></span> <a class=\"code hl_function\" href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00708\" name=\"l00708\"></a><span class=\"lineno\"> 708</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00709\" name=\"l00709\"></a><span class=\"lineno\"> 709</span> </div>\n+<div class=\"line\"><a id=\"l00710\" name=\"l00710\"></a><span class=\"lineno\"> 710</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00711\" name=\"l00711\"></a><span class=\"lineno\"> 711</span> </div>\n+<div class=\"line\"><a id=\"l00712\" name=\"l00712\"></a><span class=\"lineno\"> 712</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00713\" name=\"l00713\"></a><span class=\"lineno\"> 713</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00714\" name=\"l00714\"></a><span class=\"lineno\"> 714</span> <a class=\"code hl_class\" href=\"a01331.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00715\" name=\"l00715\"></a><span class=\"lineno\"> 715</span><a class=\"code hl_class\" href=\"a01331.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00716\" name=\"l00716\"></a><span class=\"lineno\"> 716</span> : <a class=\"code hl_class\" href=\"a01339.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n+<div class=\"line\"><a id=\"l00717\" name=\"l00717\"></a><span class=\"lineno\"> 717</span> {}</div>\n+<div class=\"line\"><a id=\"l00718\" name=\"l00718\"></a><span class=\"lineno\"> 718</span> </div>\n+<div class=\"line\"><a id=\"l00719\" name=\"l00719\"></a><span class=\"lineno\"> 719</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00720\" name=\"l00720\"></a><span class=\"lineno\"> 720</span> </div>\n+<div class=\"line\"><a id=\"l00721\" name=\"l00721\"></a><span class=\"lineno\"> 721</span> } <span class=\"comment\">// namespace Simplex</span></div>\n+</div>\n+<div class=\"line\"><a id=\"l00722\" name=\"l00722\"></a><span class=\"lineno\"> 722</span> </div>\n+<div class=\"line\"><a id=\"l00723\" name=\"l00723\"></a><span class=\"lineno\"> 723</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00724\" name=\"l00724\"></a><span class=\"lineno\"> 724</span> </div>\n+<div class=\"line\"><a id=\"l00725\" name=\"l00725\"></a><span class=\"lineno\"> 725</span> </div>\n+<div class=\"line\"><a id=\"l00726\" name=\"l00726\"></a><span class=\"lineno\"> 726</span> <span class=\"keyword\">namespace </span>RefinementImp {</div>\n+<div class=\"line\"><a id=\"l00727\" name=\"l00727\"></a><span class=\"lineno\"> 727</span> </div>\n+<div class=\"line\"><a id=\"l00728\" name=\"l00728\"></a><span class=\"lineno\"> 728</span> <span class=\"comment\">// ///////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00729\" name=\"l00729\"></a><span class=\"lineno\"> 729</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00730\" name=\"l00730\"></a><span class=\"lineno\"> 730</span> <span class=\"comment\">// The refinement traits</span></div>\n+<div class=\"line\"><a id=\"l00731\" name=\"l00731\"></a><span class=\"lineno\"> 731</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00732\" name=\"l00732\"></a><span class=\"lineno\"> 732</span> </div>\n+<div class=\"line\"><a id=\"l00733\" name=\"l00733\"></a><span class=\"lineno\"> 733</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00734\" name=\"l00734\"></a><span class=\"lineno\"> 734</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId,</div>\n+<div class=\"line\"><a id=\"l00735\" name=\"l00735\"></a><span class=\"lineno\"> 735</span> <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00736\" name=\"l00736\"></a><span class=\"lineno\"> 736</span> <span class=\"keyword\">struct </span>Traits<</div>\n+<div class=\"line\"><a id=\"l00737\" name=\"l00737\"></a><span class=\"lineno\"> 737</span> topologyId, CoordType, coerceToId, dim,</div>\n+<div class=\"line\"><a id=\"l00738\" name=\"l00738\"></a><span class=\"lineno\"> 738</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n+<div class=\"line\"><a id=\"l00739\" name=\"l00739\"></a><span class=\"lineno\"> 739</span> ((GeometryTypes::simplex(dim).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00740\" name=\"l00740\"></a><span class=\"lineno\"> 740</span> (topologyId >> 1) &&</div>\n+<div class=\"line\"><a id=\"l00741\" name=\"l00741\"></a><span class=\"lineno\"> 741</span> (GeometryTypes::simplex(dim).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00742\" name=\"l00742\"></a><span class=\"lineno\"> 742</span> (coerceToId >> 1)</div>\n+<div class=\"line\"><a id=\"l00743\" name=\"l00743\"></a><span class=\"lineno\"> 743</span> )>::type</div>\n+<div class=\"line\"><a id=\"l00744\" name=\"l00744\"></a><span class=\"lineno\"> 744</span> ></div>\n+<div class=\"line\"><a id=\"l00745\" name=\"l00745\"></a><span class=\"lineno\"> 745</span> {</div>\n+<div class=\"line\"><a id=\"l00746\" name=\"l00746\"></a><span class=\"lineno\"> 746</span> <span class=\"keyword\">typedef</span> Simplex::RefinementImp<dim, CoordType> Imp;</div>\n+<div class=\"line\"><a id=\"l00747\" name=\"l00747\"></a><span class=\"lineno\"> 747</span> };</div>\n+<div class=\"line\"><a id=\"l00748\" name=\"l00748\"></a><span class=\"lineno\"> 748</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00749\" name=\"l00749\"></a><span class=\"lineno\"> 749</span> </div>\n+<div class=\"line\"><a id=\"l00750\" name=\"l00750\"></a><span class=\"lineno\"> 750</span> </div>\n+<div class=\"line\"><a id=\"l00751\" name=\"l00751\"></a><span class=\"lineno\"> 751</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00752\" name=\"l00752\"></a><span class=\"lineno\"> 752</span> </div>\n+<div class=\"line\"><a id=\"l00753\" name=\"l00753\"></a><span class=\"lineno\"> 753</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00754\" name=\"l00754\"></a><span class=\"lineno\"> 754</span> </div>\n+<div class=\"line\"><a id=\"l00755\" name=\"l00755\"></a><span class=\"lineno\"> 755</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">//DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</span></div>\n <div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00212_html\"><div class=\"ttname\"><a href=\"a00212.html\">quadraturerules.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00215_html\"><div class=\"ttname\"><a href=\"a00215.html\">algorithms.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00218_html\"><div class=\"ttname\"><a href=\"a00218.html\">convergence.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00224_html\"><div class=\"ttname\"><a href=\"a00224.html\">multilineargeometry.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00236_html\"><div class=\"ttname\"><a href=\"a00236.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n <div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_a24c58f3248cb543a0c221c3e9c4ac9bf\"><div class=\"ttname\"><a href=\"a00274.html#a24c58f3248cb543a0c221c3e9c4ac9bf\">Dune::RefinementImp::Simplex::pointIndex</a></div><div class=\"ttdeci\">int pointIndex(const FieldVector< int, dimension > &point)</div><div class=\"ttdoc\">calculate the index of a given gridpoint within a Kuhn0 simplex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:280</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_afd47205aa1691498b073d9681fb23f6d\"><div class=\"ttname\"><a href=\"a00274.html#afd47205aa1691498b073d9681fb23f6d\">Dune::RefinementImp::Simplex::kuhnToReference</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > kuhnToReference(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from some Kuhn simplex to the reference simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:341</div></div>\n <div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n-<div class=\"ttc\" id=\"aa01135_html\"><div class=\"ttname\"><a href=\"a01135.html\">Dune::MappedGeometry</a></div><div class=\"ttdoc\">Geometry parametrized by a LocalFunction and a LocalGeometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:65</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a0a60875cb95949396a466aef9a184f20\"><div class=\"ttname\"><a href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">Dune::MappedGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(std::declval< Map >()(std::declval< typename Geo::GlobalCoordinate >()))> GlobalCoordinate</div><div class=\"ttdoc\">type of global coordinates</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:71</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a0e74733fcdc8e95513e712a5ba95ae93\"><div class=\"ttname\"><a href=\"a01135.html#a0e74733fcdc8e95513e712a5ba95ae93\">Dune::MappedGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Map the center of the wrapped geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:162</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a229568ce47471584c387dd3b382c02f7\"><div class=\"ttname\"><a href=\"a01135.html#a229568ce47471584c387dd3b382c02f7\">Dune::MappedGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:310</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a24c95884a9838f3d67802c088001d897\"><div class=\"ttname\"><a href=\"a01135.html#a24c95884a9838f3d67802c088001d897\">Dune::MappedGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:296</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a2deff50ea81410eb14e695828e44e44d\"><div class=\"ttname\"><a href=\"a01135.html#a2deff50ea81410eb14e695828e44e44d\">Dune::MappedGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:284</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a3778ccb7cef7b52f69a0f0b3b4deb74c\"><div class=\"ttname\"><a href=\"a01135.html#a3778ccb7cef7b52f69a0f0b3b4deb74c\">Dune::MappedGeometry::MappedGeometry</a></div><div class=\"ttdeci\">MappedGeometry(Map_ &&mapping, Geo_ &&geometry, bool affine=false)</div><div class=\"ttdoc\">Constructor from mapping to parametrize the geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:125</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a4c4019124eaefd70ffc1c3db352ab6d3\"><div class=\"ttname\"><a href=\"a01135.html#a4c4019124eaefd70ffc1c3db352ab6d3\">Dune::MappedGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">type of jacobian transposed</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:89</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a64790df7abd3e18bfb12732e41fa907d\"><div class=\"ttname\"><a href=\"a01135.html#a64790df7abd3e18bfb12732e41fa907d\">Dune::MappedGeometry::mydimension</a></div><div class=\"ttdeci\">static constexpr int mydimension</div><div class=\"ttdoc\">geometry dimension</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:77</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a6a7a94598f3817d3aeef78b59774fabe\"><div class=\"ttname\"><a href=\"a01135.html#a6a7a94598f3817d3aeef78b59774fabe\">Dune::MappedGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Obtain the geometry type from the reference element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:143</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a76bb25b2a7da1d92f31becae6bdc5ef8\"><div class=\"ttname\"><a href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">Dune::MappedGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">typename Geo::LocalCoordinate LocalCoordinate</div><div class=\"ttdoc\">type of local coordinates</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:68</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a79cdb7934c62e9984e2b356b5ce55129\"><div class=\"ttname\"><a href=\"a01135.html#a79cdb7934c62e9984e2b356b5ce55129\">Dune::MappedGeometry::ctype</a></div><div class=\"ttdeci\">typename Geo::ctype ctype</div><div class=\"ttdoc\">coordinate type</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:74</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a7e248ee33864ab43b068b0645659d678\"><div class=\"ttname\"><a href=\"a01135.html#a7e248ee33864ab43b068b0645659d678\">Dune::MappedGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Evaluate the inverse coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:197</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a8f2a5fb4744012b72805e60626470598\"><div class=\"ttname\"><a href=\"a01135.html#a8f2a5fb4744012b72805e60626470598\">Dune::MappedGeometry::Geometry</a></div><div class=\"ttdeci\">Geo Geometry</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:108</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a8f4e6430cf3af81c064567ad2a2deea2\"><div class=\"ttname\"><a href=\"a01135.html#a8f4e6430cf3af81c064567ad2a2deea2\">Dune::MappedGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:155</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a904a6424274079743a2ba05a9e3a9786\"><div class=\"ttname\"><a href=\"a01135.html#a904a6424274079743a2ba05a9e3a9786\">Dune::MappedGeometry::coorddimension</a></div><div class=\"ttdeci\">static constexpr int coorddimension</div><div class=\"ttdoc\">coordinate dimension</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:80</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a9af892dde1cf1c1e9d56c3c754c0d756\"><div class=\"ttname\"><a href=\"a01135.html#a9af892dde1cf1c1e9d56c3c754c0d756\">Dune::MappedGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">type of jacobian inverse transposed</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:95</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a9b2c5492ef2af6964f11c9382ee386aa\"><div class=\"ttname\"><a href=\"a01135.html#a9b2c5492ef2af6964f11c9382ee386aa\">Dune::MappedGeometry::Mapping</a></div><div class=\"ttdeci\">Map Mapping</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:105</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a9be03a7562461294d97d69c3b9b524b9\"><div class=\"ttname\"><a href=\"a01135.html#a9be03a7562461294d97d69c3b9b524b9\">Dune::MappedGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:176</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_a9e49caf1dc32d4b169ca8b3e6ce0375c\"><div class=\"ttname\"><a href=\"a01135.html#a9e49caf1dc32d4b169ca8b3e6ce0375c\">Dune::MappedGeometry::refElement</a></div><div class=\"ttdeci\">ReferenceElement refElement() const</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:323</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_aa501aa8e052e617ac17c0aba0496408d\"><div class=\"ttname\"><a href=\"a01135.html#aa501aa8e052e617ac17c0aba0496408d\">Dune::MappedGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image by given quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:259</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ab123d20fbb6bd4da860bbdd3ab055ffa\"><div class=\"ttname\"><a href=\"a01135.html#ab123d20fbb6bd4da860bbdd3ab055ffa\">Dune::MappedGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:149</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ab20774a141549e302e68c82bc2f661eb\"><div class=\"ttname\"><a href=\"a01135.html#ab20774a141549e302e68c82bc2f661eb\">Dune::MappedGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">type of jacobian inverse</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:92</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ab4628714f73960a1139cf8bda0d5f7fc\"><div class=\"ttname\"><a href=\"a01135.html#ab4628714f73960a1139cf8bda0d5f7fc\">Dune::MappedGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const MappedGeometry &geometry)</div><div class=\"ttdoc\">Obtain the reference-element related to this geometry.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:316</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ac4bba6180c6d623bc1124a44413dc6a3\"><div class=\"ttname\"><a href=\"a01135.html#ac4bba6180c6d623bc1124a44413dc6a3\">Dune::MappedGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:241</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ac903ac738ae45e8e55599dd9d462e437\"><div class=\"ttname\"><a href=\"a01135.html#ac903ac738ae45e8e55599dd9d462e437\">Dune::MappedGeometry::Volume</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(Dune::power(std::declval< ctype >(), mydimension))> Volume</div><div class=\"ttdoc\">type of volume</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:83</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_adc9100c25955043886248662db0039a8\"><div class=\"ttname\"><a href=\"a01135.html#adc9100c25955043886248662db0039a8\">Dune::MappedGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Is this mapping affine? Not in general, since we don't know anything about the mapping....</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:137</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ade44883006b5b261a4261133464672bd\"><div class=\"ttname\"><a href=\"a01135.html#ade44883006b5b261a4261133464672bd\">Dune::MappedGeometry::DerivativeMapping</a></div><div class=\"ttdeci\">std::remove_reference_t< decltype(derivative(std::declval< Map >()))> DerivativeMapping</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:111</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_ae2ad60a19b546728667b349331cd3134\"><div class=\"ttname\"><a href=\"a01135.html#ae2ad60a19b546728667b349331cd3134\">Dune::MappedGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:272</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_aec821a975f82d2a1fa673a32bb184b94\"><div class=\"ttname\"><a href=\"a01135.html#aec821a975f82d2a1fa673a32bb184b94\">Dune::MappedGeometry::MatrixHelper</a></div><div class=\"ttdeci\">Impl::FieldMatrixHelper< ctype > MatrixHelper</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:102</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_af0a38a30cbc8998425f57da374b6b5a9\"><div class=\"ttname\"><a href=\"a01135.html#af0a38a30cbc8998425f57da374b6b5a9\">Dune::MappedGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">type of jacobian</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:86</div></div>\n-<div class=\"ttc\" id=\"aa01135_html_af104ddb993eb80b1fa137b03dcd020c5\"><div class=\"ttname\"><a href=\"a01135.html#af104ddb993eb80b1fa137b03dcd020c5\">Dune::MappedGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> mappedgeometry.hh:225</div></div>\n-<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n-<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n-<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n+<div class=\"ttc\" id=\"aa01099_html_ab3bf8998f1dc95d6cd86755fb892110f\"><div class=\"ttname\"><a href=\"a01099.html#ab3bf8998f1dc95d6cd86755fb892110f\">Dune::Geo::ReferenceElements::simplex</a></div><div class=\"ttdeci\">static const ReferenceElement & simplex()</div><div class=\"ttdoc\">get simplex reference elements</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:162</div></div>\n+<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n+<div class=\"ttc\" id=\"aa01159_html\"><div class=\"ttname\"><a href=\"a01159.html\">Dune::CachedMultiLinearGeometry</a></div><div class=\"ttdoc\">Implement a MultiLinearGeometry with additional caching.</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:526</div></div>\n+<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a073d09d99f41ea5ef73d02e760fd8a7c\"><div class=\"ttname\"><a href=\"a01331.html#a073d09d99f41ea5ef73d02e760fd8a7c\">Dune::RefinementImp::Simplex::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:368</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a1490fdf6fede759f9ffe9c53ea8268fc\"><div class=\"ttname\"><a href=\"a01331.html#a1490fdf6fede759f9ffe9c53ea8268fc\">Dune::RefinementImp::Simplex::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:371</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a3b3bd0b4978390f33925e1621599e7f9\"><div class=\"ttname\"><a href=\"a01331.html#a3b3bd0b4978390f33925e1621599e7f9\">Dune::RefinementImp::Simplex::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:364</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a4f9985b41f044be2dfeeadf25a13e6df\"><div class=\"ttname\"><a href=\"a01331.html#a4f9985b41f044be2dfeeadf25a13e6df\">Dune::RefinementImp::Simplex::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:394</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a64285f89c04e48cff0acdbab590a077f\"><div class=\"ttname\"><a href=\"a01331.html#a64285f89c04e48cff0acdbab590a077f\">Dune::RefinementImp::Simplex::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:418</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a822e973258df4379d9157e340b1a9c4b\"><div class=\"ttname\"><a href=\"a01331.html#a822e973258df4379d9157e340b1a9c4b\">Dune::RefinementImp::Simplex::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:434</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_a9ed5d63dabd62864aeae480528d2896f\"><div class=\"ttname\"><a href=\"a01331.html#a9ed5d63dabd62864aeae480528d2896f\">Dune::RefinementImp::Simplex::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:410</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_aa6fba069911d6201fdb495f19f4bc992\"><div class=\"ttname\"><a href=\"a01331.html#aa6fba069911d6201fdb495f19f4bc992\">Dune::RefinementImp::Simplex::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:370</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_ab3422933c006c3554027298c991e743c\"><div class=\"ttname\"><a href=\"a01331.html#ab3422933c006c3554027298c991e743c\">Dune::RefinementImp::Simplex::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:402</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_ac05c63c995a73440a799ef3ff95ceccb\"><div class=\"ttname\"><a href=\"a01331.html#ac05c63c995a73440a799ef3ff95ceccb\">Dune::RefinementImp::Simplex::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:426</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_ac26719cc73c3fb028c88622f58f22cc8\"><div class=\"ttname\"><a href=\"a01331.html#ac26719cc73c3fb028c88622f58f22cc8\">Dune::RefinementImp::Simplex::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:369</div></div>\n+<div class=\"ttc\" id=\"aa01331_html_add6299860dc277ceea50c62e3ad5d78d\"><div class=\"ttname\"><a href=\"a01331.html#add6299860dc277ceea50c62e3ad5d78d\">Dune::RefinementImp::Simplex::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:363</div></div>\n+<div class=\"ttc\" id=\"aa01335_html\"><div class=\"ttname\"><a href=\"a01335.html\">Dune::RefinementImp::Simplex::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:385</div></div>\n+<div class=\"ttc\" id=\"aa01335_html_addf3e4e65918928613e6339bf7586792\"><div class=\"ttname\"><a href=\"a01335.html#addf3e4e65918928613e6339bf7586792\">Dune::RefinementImp::Simplex::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::CachedMultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:388</div></div>\n+<div class=\"ttc\" id=\"aa01339_html\"><div class=\"ttname\"><a href=\"a01339.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:445</div></div>\n+<div class=\"ttc\" id=\"aa01343_html\"><div class=\"ttname\"><a href=\"a01343.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:451</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_a13d53a5cb0c66b3f1db60363ee29d46b\"><div class=\"ttname\"><a href=\"a01343.html#a13d53a5cb0c66b3f1db60363ee29d46b\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:454</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_a1b79b4ccbb379c1798b463e22bda4435\"><div class=\"ttname\"><a href=\"a01343.html#a1b79b4ccbb379c1798b463e22bda4435\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:453</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_a2da12148180359a8e5d4b0ca4c4ca527\"><div class=\"ttname\"><a href=\"a01343.html#a2da12148180359a8e5d4b0ca4c4ca527\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::vertex</a></div><div class=\"ttdeci\">Vertex vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:471</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_aaeafc21d67ff0ef647e6cc61264ee6d2\"><div class=\"ttname\"><a href=\"a01343.html#aaeafc21d67ff0ef647e6cc61264ee6d2\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:455</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_ad689e831ddeb23204a98df1ef62942b8\"><div class=\"ttname\"><a href=\"a01343.html#ad689e831ddeb23204a98df1ef62942b8\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::This</a></div><div class=\"ttdeci\">RefinementIteratorSpecial< dimension, CoordType, dimension > This</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:456</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_ae3655a48026ef490612d6a61fa46d5bc\"><div class=\"ttname\"><a href=\"a01343.html#ae3655a48026ef490612d6a61fa46d5bc\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::Vertex</a></div><div class=\"ttdeci\">FieldVector< int, dimension > Vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:468</div></div>\n+<div class=\"ttc\" id=\"aa01343_html_afc4dc958163c18c5850793a1d43494cc\"><div class=\"ttname\"><a href=\"a01343.html#afc4dc958163c18c5850793a1d43494cc\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::size</a></div><div class=\"ttdeci\">int size</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:470</div></div>\n+<div class=\"ttc\" id=\"aa01347_html\"><div class=\"ttname\"><a href=\"a01347.html\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:541</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a13327dbc3e7882609600286a93a6cf92\"><div class=\"ttname\"><a href=\"a01347.html#a13327dbc3e7882609600286a93a6cf92\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:568</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a255e4781c12d653875752edc22339ad9\"><div class=\"ttname\"><a href=\"a01347.html#a255e4781c12d653875752edc22339ad9\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Vertex</a></div><div class=\"ttdeci\">FieldVector< int, dimension > Vertex</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:564</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a49f02121a44d7876aa0edf904ff2fbbe\"><div class=\"ttname\"><a href=\"a01347.html#a49f02121a44d7876aa0edf904ff2fbbe\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::origin</a></div><div class=\"ttdeci\">Vertex origin</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:567</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a536218025297ad013286e9647f5fedd8\"><div class=\"ttname\"><a href=\"a01347.html#a536218025297ad013286e9647f5fedd8\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::index_</a></div><div class=\"ttdeci\">int index_</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:570</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a557c7bcfb38185387885b9cd0e34616d\"><div class=\"ttname\"><a href=\"a01347.html#a557c7bcfb38185387885b9cd0e34616d\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:546</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a64451b17540d5334bb173a2ff514aa90\"><div class=\"ttname\"><a href=\"a01347.html#a64451b17540d5334bb173a2ff514aa90\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:544</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a646ff1c050f2d88cb722e80d7ffc469b\"><div class=\"ttname\"><a href=\"a01347.html#a646ff1c050f2d88cb722e80d7ffc469b\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:545</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_a6c4b3e4c450a13402ecc4f032fbf3196\"><div class=\"ttname\"><a href=\"a01347.html#a6c4b3e4c450a13402ecc4f032fbf3196\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::This</a></div><div class=\"ttdeci\">RefinementIteratorSpecial< dimension, CoordType, 0 > This</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:547</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_ac0a410f8ebfbf2def79e0913b67c7ebb\"><div class=\"ttname\"><a href=\"a01347.html#ac0a410f8ebfbf2def79e0913b67c7ebb\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:543</div></div>\n+<div class=\"ttc\" id=\"aa01347_html_ad7af99d9983c82a72a44b897d313f240\"><div class=\"ttname\"><a href=\"a01347.html#ad7af99d9983c82a72a44b897d313f240\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::size</a></div><div class=\"ttdeci\">int size</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:569</div></div>\n+<div class=\"ttc\" id=\"aa01351_html_a0469732db9b593f8b6910db24e6aa757\"><div class=\"ttname\"><a href=\"a01351.html#a0469732db9b593f8b6910db24e6aa757\">Dune::RefinementImp::Simplex::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n+<div class=\"ttc\" id=\"aa01351_html_aac8e0efdd4076c1e33f6fa90b5c918f0\"><div class=\"ttname\"><a href=\"a01351.html#aac8e0efdd4076c1e33f6fa90b5c918f0\">Dune::RefinementImp::Simplex::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:705</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,405 +1,682 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-mappedgeometry.hh\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+simplex.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n-6#define DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n+5#ifndef DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n+_\b6#define DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n 7\n-8#include <cassert>\n-9#include <limits>\n-10#include <optional>\n-11#include <stdexcept>\n-12#include <type_traits>\n+8// This file is part of DUNE, a Distributed and Unified Numerics Environment\n+9// This file is copyright (C) 2005 Jorrit Fahlke <jorrit@jorrit.de>\n+10// This file is licensed under version 2 of the GNU General Public License,\n+11// with a special \"runtime exception.\" See COPYING at the top of the source\n+12// tree for the full licence.\n 13\n-14#include <dune/common/copyableoptional.hh>\n-15#include <dune/common/exceptions.hh>\n-16#include <dune/common/fmatrix.hh>\n-17#include <dune/common/fvector.hh>\n-18#include <dune/common/math.hh>\n-19#include <dune/common/transpose.hh>\n-20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n-21#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n-22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-24#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n-25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n-26\n-27namespace _\bD_\bu_\bn_\be {\n-28\n-63template <class Map, class Geo>\n-_\b6_\b4class _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-65{\n-66public:\n-_\b6_\b8 using _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = typename Geo::LocalCoordinate;\n-69\n-_\b7_\b1 using _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = std::remove_reference_t<decltype(std::declval<Map>\n-()(std::declval<typename Geo::GlobalCoordinate>()))>;\n-72\n-_\b7_\b4 using _\bc_\bt_\by_\bp_\be = typename Geo::ctype;\n-75\n-_\b7_\b7 static constexpr int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = LocalCoordinate::size();\n-78\n-_\b8_\b0 static constexpr int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = GlobalCoordinate::size();\n-81\n-_\b8_\b3 using _\bV_\bo_\bl_\bu_\bm_\be = std::remove_reference_t<decltype(Dune::power(std::\n-declval<ctype>(),_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn))>;\n-84\n-_\b8_\b6 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = FieldMatrix<ctype, coorddimension, mydimension>;\n-87\n-_\b8_\b9 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, mydimension, coorddimension>;\n-90\n-_\b9_\b2 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = FieldMatrix<ctype, mydimension, coorddimension>;\n-93\n-_\b9_\b5 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, coorddimension,\n-mydimension>;\n-96\n-97private:\n-98 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs = _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-99 using ReferenceElement = typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n-100\n-101protected:\n-_\b1_\b0_\b2 using _\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br = Impl::FieldMatrixHelper<ctype>;\n-103\n-104 // type of the mapping representation the geometry parametrization\n-_\b1_\b0_\b5 using _\bM_\ba_\bp_\bp_\bi_\bn_\bg = Map;\n-106\n-107 // type of the geometry that is wrapped\n-_\b1_\b0_\b8 using _\bG_\be_\bo_\bm_\be_\bt_\br_\by = Geo;\n-109\n-110 // type of a mapping representing the derivative of `Map` w.r.t.\n-`GlobalCoordinate`\n-_\b1_\b1_\b1 using _\bD_\be_\br_\bi_\bv_\ba_\bt_\bi_\bv_\be_\bM_\ba_\bp_\bp_\bi_\bn_\bg = std::remove_reference_t<decltype(derivative(std::\n-declval<Map>()))>;\n-112\n-113public:\n-122 template <class Geo_, class Map_,\n-123 std::enable_if_t<Dune::IsInteroperable<Map, Map_>::value, int> = 0,\n-124 std::enable_if_t<Dune::IsInteroperable<Geo, Geo_>::value, int> = 0>\n-_\b1_\b2_\b5 _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (Map_&& mapping, Geo_&& geometry, bool _\ba_\bf_\bf_\bi_\bn_\be = false)\n-126 : mapping_(_\bs_\bt_\bd::forward<Map_>(mapping))\n-127 , dMapping_(derivative(*mapping_))\n-128 , geometry_(_\bs_\bt_\bd::forward<Geo_>(geometry))\n-129 , affine_(_\ba_\bf_\bf_\bi_\bn_\be)\n-130 {}\n-131\n-_\b1_\b3_\b7 bool _\ba_\bf_\bf_\bi_\bn_\be () const\n-138 {\n-139 return affine_;\n-140 }\n-141\n-_\b1_\b4_\b3 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const\n-144 {\n-145 return geometry_.type();\n-146 }\n-147\n-_\b1_\b4_\b9 int _\bc_\bo_\br_\bn_\be_\br_\bs () const\n-150 {\n-151 return geometry_.corners();\n-152 }\n-153\n-_\b1_\b5_\b5 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br (int i) const\n-156 {\n-157 assert( (i >= 0) && (i < _\bc_\bo_\br_\bn_\be_\br_\bs()) );\n-158 return mapping()(geometry_.corner(i));\n-159 }\n-160\n-_\b1_\b6_\b2 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const\n-163 {\n-164 return mapping()(geometry_.center());\n-165 }\n-166\n-_\b1_\b7_\b6 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-177 {\n-178 return mapping()(geometry_.global(_\bl_\bo_\bc_\ba_\bl));\n-179 }\n-180\n-_\b1_\b9_\b7 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl (const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& y, Impl::\n-GaussNewtonOptions<ctype> opts = {}) const\n-198 {\n-199 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be x = _\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt().position(0,0);\n-200 Impl::GaussNewtonErrorCode err = Impl::gaussNewton(\n-201 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(local); },\n-202 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(local);\n-},\n-203 y, x, opts\n-204 );\n-205\n-206 if (err != Impl::GaussNewtonErrorCode::OK)\n-207 DUNE_THROW(Dune::Exception,\n-208 \"Local coordinate can not be recovered from global coordinate, error code =\n-\" << int(err) << \"\\n\"\n-209 << \" (global(x) - y).two_norm() = \" << (_\bg_\bl_\bo_\bb_\ba_\bl(x) - y).two_norm()\n-210 << \" > tol = \" << opts.absTol);\n-211\n-212 return x;\n-213 }\n-214\n-_\b2_\b2_\b5 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-226 {\n-227 return MatrixHelper::sqrtDetAAT(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl));\n-228 }\n-229\n-_\b2_\b4_\b1 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (Impl::ConvergenceOptions<ctype> opts = {}) const\n-242 {\n-243 _\bV_\bo_\bl_\bu_\bm_\be vol0 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), 1));\n-244 if (_\ba_\bf_\bf_\bi_\bn_\be())\n-245 return vol0;\n-246\n-247 using std::abs;\n-248 for (int p = 2; p < opts.maxIt; ++p) {\n-249 _\bV_\bo_\bl_\bu_\bm_\be vol1 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), p));\n-250 if (abs(vol1 - vol0) < opts.absTol)\n-251 return vol1;\n-252\n-253 vol0 = vol1;\n-254 }\n-255 return vol0;\n-256 }\n+243#include <algorithm>\n+244\n+245#include <dune/common/fvector.hh>\n+246#include <dune/common/math.hh>\n+247\n+248#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+249#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+250#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+251\n+252#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+253\n+254namespace _\bD_\bu_\bn_\be {\n+255\n+256 namespace RefinementImp {\n 257\n-_\b2_\b5_\b9 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>& quadRule) const\n-260 {\n-261 _\bV_\bo_\bl_\bu_\bm_\be vol(0);\n-262 for (const auto& qp : quadRule)\n-263 vol += _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt(qp.position()) * qp.weight();\n-264 return vol;\n-265 }\n-266\n-_\b2_\b7_\b2 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-273 {\n-274 auto&& jLocal = geometry_.jacobian(_\bl_\bo_\bc_\ba_\bl);\n-275 auto&& jMapping = (*dMapping_)(geometry_.global(_\bl_\bo_\bc_\ba_\bl));\n-276 return jMapping * jLocal;\n-277 }\n-278\n-_\b2_\b8_\b4 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-285 {\n-286 return transpose(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl));\n-287 }\n-288\n-_\b2_\b9_\b6 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-297 {\n-298 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be out;\n-299 MatrixHelper::leftInvA(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl), out);\n-300 return out;\n-301 }\n+_\b2_\b6_\b4 namespace Simplex {\n+265\n+266 // //////////////////\n+267 //\n+269 //\n+270\n+272\n+279 template<int dimension>\n+_\b2_\b8_\b0 int _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(const FieldVector<int, dimension> &point)\n+281 {\n+282 int index = 0;\n+283 for(int i = 0; i < dimension; ++i)\n+284 index += Dune::binomial(dimension-i + point[i]-1, dimension-i);\n+285 return index;\n+286 }\n+287\n+292 template<int n>\n+_\b2_\b9_\b3 FieldVector<int, n> _\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn(int m)\n+294 {\n+295 FieldVector<int, n> perm;\n+296 for(int i = 0; i < n; ++i)\n+297 perm[i] = i;\n+298\n+299 int base = 1;\n+300 for(int i = 1; i <= n; ++i)\n+301 base *= i;\n 302\n-_\b3_\b1_\b0 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n-_\bl_\bo_\bc_\ba_\bl) const\n-311 {\n-312 return transpose(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be(_\bl_\bo_\bc_\ba_\bl));\n-313 }\n-314\n-_\b3_\b1_\b6 friend ReferenceElement _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by& geometry)\n-317 {\n-318 return geometry._\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt();\n-319 }\n-320\n-321protected:\n-322 // the internal stored reference element\n-_\b3_\b2_\b3 ReferenceElement _\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt () const\n-324 {\n-325 return _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt(geometry_);\n-326 }\n-327\n-328private:\n-329 // internal reference to the stored mapping\n-330 const _\bM_\ba_\bp_\bp_\bi_\bn_\bg& mapping () const\n-331 {\n-332 return *mapping_;\n-333 }\n-334\n-335 // internal reference to the wrapped geometry\n-336 const _\bG_\be_\bo_\bm_\be_\bt_\br_\by& geometry () const\n-337 {\n-338 return geometry_;\n-339 }\n-340\n-341private:\n-343 CopyableOptional<Mapping> mapping_;\n-344\n-346 CopyableOptional<DerivativeMapping> dMapping_;\n-347\n-349 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry_;\n+303 for(int i = n; i > 0; --i) {\n+304 base /= i;\n+305 int d = m / base;\n+306 m %= base;\n+307 int t = perm[i-1]; perm[i-1] = perm[i-1-d]; perm[i-1-d] = t;\n+308 }\n+309 return perm;\n+310 }\n+311\n+312 // map between the reference simplex and some arbitrary kuhn simplex\n+(denoted by it's permutation)\n+320 template<int dimension, class CoordType>\n+321 FieldVector<CoordType, dimension>\n+_\b3_\b2_\b2 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn(\n+323 FieldVector<CoordType, dimension> point,\n+325 const FieldVector<int, dimension> &kuhn)\n+326 {\n+327 for(int i = dimension - 1; i > 0; --i)\n+328 point[kuhn[i-1]] += point[kuhn[i]];\n+329 return point;\n+330 }\n+331\n+339 template<int dimension, class CoordType>\n+340 FieldVector<CoordType, dimension>\n+_\b3_\b4_\b1 _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(\n+342 FieldVector<CoordType, dimension> point,\n+344 const FieldVector<int, dimension> &kuhn)\n+345 {\n+346 for(int i = 0; i < dimension - 1; ++i)\n+347 point[kuhn[i]] -= point[kuhn[i+1]];\n+348 return point;\n+349 }\n 350\n-352 bool affine_;\n-353};\n-354\n-355// deduction guides\n-356template <class Map, class Geo>\n-_\b3_\b5_\b7_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map&, const Geo&)\n-358 -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bM_\ba_\bp_\b,_\bG_\be_\bo_\b>;\n-359\n-360template <class Map, class Geo>\n-_\b3_\b6_\b1_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const Map&, const Geo&, bool)\n-362 -> _\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bM_\ba_\bp_\b,_\bG_\be_\bo_\b>;\n-363\n-364} // end namespace Dune\n+351\n+353\n+354 // /////////////////////////////////////////\n+355 //\n+356 // refinement implementation for simplices\n+357 //\n+358\n+359 template<int dimension_, class CoordType>\n+_\b3_\b6_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+361 {\n+362 public:\n+_\b3_\b6_\b3 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n+_\b3_\b6_\b4 typedef CoordType _\bc_\bt_\by_\bp_\be;\n 365\n-366#endif // DUNE_GEOMETRY_MAPPEDGEOMETRY_HH\n-_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n-An implementation of the Geometry interface for affine geometries.\n+366 template<int codimension>\n+367 struct _\bC_\bo_\bd_\bi_\bm;\n+_\b3_\b6_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b3_\b6_\b9 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b3_\b7_\b0 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b3_\b7_\b1 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+372\n+373 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n+374 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+375 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n+376\n+377 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n+378 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+379 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n+380 };\n+381\n+382 template<int dimension, class CoordType>\n+383 template<int codimension>\n+_\b3_\b8_\b4 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n+385 {\n+386 class SubEntityIterator;\n+387 // We don't need the caching, but the uncached MultiLinearGeometry has bug\n+FS#1209\n+_\b3_\b8_\b8 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bC_\ba_\bc_\bh_\be_\bd_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n+codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+389 };\n+390\n+391 template<int dimension, class CoordType>\n+392 int\n+_\b3_\b9_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+394_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n+395 {\n+396 return Dune::binomial(dimension + nIntervals, (int)dimension);\n+397 }\n+398\n+399 template<int dimension, class CoordType>\n+400 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b4_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+402_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+403 {\n+404 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+405 }\n+406\n+407 template<int dimension, class CoordType>\n+408 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b4_\b0_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+410_\b _\bv_\bE_\bn_\bd(int nIntervals)\n+411 {\n+412 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n+413 }\n+414\n+415 template<int dimension, class CoordType>\n+416 int\n+_\b4_\b1_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+418_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n+419 {\n+420 return Dune::power(nIntervals, int(dimension));\n+421 }\n+422\n+423 template<int dimension, class CoordType>\n+424 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b4_\b2_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+426_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+427 {\n+428 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+429 }\n+430\n+431 template<int dimension, class CoordType>\n+432 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b4_\b3_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+434_\b _\be_\bE_\bn_\bd(int nIntervals)\n+435 {\n+436 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n+437 }\n+438\n+439 // //////////////\n+440 //\n+441 // The iterator\n+442 //\n+443\n+444 template<int dimension, class CoordType, int codimension>\n+_\b4_\b4_\b5 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+446\n+447 // vertices\n+448\n+449 template<int dimension, class CoordType>\n+_\b4_\b5_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n+451 {\n+452 public:\n+_\b4_\b5_\b3 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b4_\b5_\b4 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b4_\b5_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+_\b4_\b5_\b6 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bT_\bh_\bi_\bs;\n+457\n+458 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+459\n+460 void increment();\n+461 bool equals(const _\bT_\bh_\bi_\bs &other) const;\n+462\n+463 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+464 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n+465\n+466 int index() const;\n+467 protected:\n+_\b4_\b6_\b8 typedef FieldVector<int, dimension> _\bV_\be_\br_\bt_\be_\bx;\n+469\n+_\b4_\b7_\b0 int _\bs_\bi_\bz_\be;\n+_\b4_\b7_\b1 _\bV_\be_\br_\bt_\be_\bx _\bv_\be_\br_\bt_\be_\bx;\n+472 };\n+473\n+474 template<int dimension, class CoordType>\n+_\b4_\b7_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+476_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+477 : size(nIntervals)\n+478 {\n+479 vertex[0] = (end) ? size + 1 : 0;\n+480 for(int i = 1; i < dimension; ++ i)\n+481 vertex[i] = 0;\n+482 }\n+483\n+484 template<int dimension, class CoordType>\n+485 void\n+_\b4_\b8_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+487_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+488 {\n+489 assert(vertex[0] <= size);\n+490 for(int i = dimension - 1; i >= 0; --i) {\n+491 ++vertex[i];\n+492 if(i == 0 || vertex[i] <= vertex[i-1])\n+493 break;\n+494 else\n+495 vertex[i] = 0;\n+496 }\n+497 }\n+498\n+499 template<int dimension, class CoordType>\n+500 bool\n+_\b5_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+502_\b _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const\n+503 {\n+504 return size == other._\bs_\bi_\bz_\be && vertex == other._\bv_\be_\br_\bt_\be_\bx;\n+505 }\n+506\n+507 template<int dimension, class CoordType>\n+508 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b5_\b0_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+510_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+511 {\n+512 _\bV_\be_\br_\bt_\be_\bx ref = _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(vertex, getPermutation<dimension>(0));\n+513\n+514 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords;\n+515 for(int i = 0; i < dimension; ++i)\n+516 coords[i] = CoordType(ref[i]) / size;\n+517 return coords;\n+518 }\n+519\n+520 template<int dimension, class CoordType>\n+521 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b5_\b2_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n+const\n+523 {\n+524 std::vector<CoordVector> corners(1);\n+525 corners[0] = (_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br)vertex;\n+526 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n+527 }\n+528\n+529 template<int dimension, class CoordType>\n+530 int\n+_\b5_\b3_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+532_\b _\bi_\bn_\bd_\be_\bx() const\n+533 {\n+534 return _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n+535 }\n+536\n+537 // elements\n+538\n+539 template<int dimension, class CoordType>\n+_\b5_\b4_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n+541 {\n+542 public:\n+_\b5_\b4_\b3 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b5_\b4_\b4 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+_\b5_\b4_\b5 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b5_\b4_\b6 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+_\b5_\b4_\b7 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b> _\bT_\bh_\bi_\bs;\n+548\n+549 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+550\n+551 void increment();\n+552 bool equals(const _\bT_\bh_\bi_\bs &other) const;\n+553\n+554 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+555 int index() const;\n+556 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+557\n+558 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n+559\n+560 private:\n+561 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n+562\n+563 protected:\n+_\b5_\b6_\b4 typedef FieldVector<int, dimension> _\bV_\be_\br_\bt_\be_\bx;\n+_\b5_\b6_\b5 constexpr static int nKuhnIntervals = Dune::factorial(dimension);\n+566\n+_\b5_\b6_\b7 _\bV_\be_\br_\bt_\be_\bx _\bo_\br_\bi_\bg_\bi_\bn;\n+_\b5_\b6_\b8 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n+_\b5_\b6_\b9 int _\bs_\bi_\bz_\be;\n+_\b5_\b7_\b0 int _\bi_\bn_\bd_\be_\bx_\b_;\n+571 };\n+572\n+573 template<int dimension, class CoordType>\n+_\b5_\b7_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+575_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+576 : kuhnIndex(0), size(nIntervals), index_(0)\n+577 {\n+578 for(int i = 0; i < dimension; ++i)\n+579 origin[i] = 0;\n+580 if(end) {\n+581 index_ = Refinement::nElements(nIntervals);\n+582 origin[0] = size;\n+583 }\n+584 }\n+585\n+586 template<int dimension, class CoordType>\n+587 void\n+_\b5_\b8_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+589_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+590 {\n+591 assert(origin[0] < size);\n+592\n+593 ++index_;\n+594\n+595 while(1) {\n+596 ++kuhnIndex;\n+597 if(kuhnIndex == nKuhnIntervals) {\n+598 kuhnIndex = 0;\n+599 // increment origin\n+600 for(int i = dimension - 1; i >= 0; --i) {\n+601 ++origin[i];\n+602 if(i == 0 || origin[i] <= origin[i-1])\n+603 break;\n+604 else\n+605 origin[i] = 0;\n+606 }\n+607 }\n+608\n+609 // test whether the current simplex has any corner outside the kuhn0\n+simplex\n+610 FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);\n+611 _\bV_\be_\br_\bt_\be_\bx corner = origin;\n+612 bool outside = false;\n+613 for(int i = 0; i < dimension; ++i) {\n+614 // next corner\n+615 ++corner[perm[i]];\n+616 if(perm[i] > 0)\n+617 if(corner[perm[i]] > corner[perm[i]-1]) {\n+618 outside = true;\n+619 break;\n+620 }\n+621 }\n+622 if(!outside)\n+623 return;\n+624 }\n+625 }\n+626\n+627 template<int dimension, class CoordType>\n+628 bool\n+_\b6_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+630_\b _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const\n+631 {\n+632 return size == other._\bs_\bi_\bz_\be && index_ == other._\bi_\bn_\bd_\be_\bx_\b_;\n+633 }\n+634\n+635 template<int dimension, class CoordType>\n+636 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+_\b6_\b3_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+638_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+639 {\n+640 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices;\n+641 FieldVector<int, dimension> perm = getPermutation<dimension>(kuhnIndex);\n+642 _\bV_\be_\br_\bt_\be_\bx vertex = origin;\n+643 indices[0] = _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n+644 for(int i = 0; i < dimension; ++i) {\n+645 ++vertex[perm[i]];\n+646 indices[i+1] = _\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx(vertex);\n+647 }\n+648 if (kuhnIndex%2 == 1)\n+649 for(int i = 0; i < (dimension+1)/2; ++i) {\n+650 int t = indices[i];\n+651 indices[i] = indices[dimension-i];\n+652 indices[dimension-i] = t;\n+653 }\n+654 return indices;\n+655 }\n+656\n+657 template<int dimension, class CoordType>\n+658 int\n+_\b6_\b5_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+660_\b _\bi_\bn_\bd_\be_\bx() const\n+661 {\n+662 return index_;\n+663 }\n+664\n+665 template<int dimension, class CoordType>\n+666 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b6_\b6_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+668_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+669 {\n+670 return global(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n+671 ::simplex().position(0,0));\n+672 }\n+673\n+674 template<int dimension, class CoordType>\n+675 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b6_\b7_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by () const\n+677 {\n+678 std::vector<CoordVector> corners(dimension+1);\n+679 auto refelem = _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx();\n+680 for(int i = 0; i <= dimension; ++i)\n+681 corners[i] = global(refelem.position(i, dimension));\n+682 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(refelem.type(), corners);\n+683 }\n+684\n+685 template<int dimension, class CoordType>\n+686 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+687 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+688_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const {\n+689 CoordVector v =\n+690 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn(local, getPermutation<dimension>(kuhnIndex));\n+691 v += origin;\n+692 v /= (typename CoordVector::value_type)size;\n+693 return _\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(v, getPermutation<dimension>(0));\n+694 }\n+695\n+696 // common\n+697\n+698 template<int dimension, class CoordType>\n+699 template<int codimension>\n+_\b7_\b0_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n+SubEntityIterator\n+701 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n+CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n+702 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n+703 {\n+704 public:\n+_\b7_\b0_\b5 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+706\n+_\b7_\b0_\b7 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n+708 };\n+709\n+710#ifndef DOXYGEN\n+711\n+712 template<int dimension, class CoordType>\n+713 template<int codimension>\n+714 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+715_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n+716 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n+end)\n+717 {}\n+718\n+719#endif\n+720\n+721 } // namespace Simplex\n+722\n+723 } // namespace RefinementImp\n+724\n+725\n+726 namespace RefinementImp {\n+727\n+728 // ///////////////////////\n+729 //\n+730 // The refinement traits\n+731 //\n+732\n+733#ifndef DOXYGEN\n+734 template<unsigned topologyId, class CoordType, unsigned coerceToId,\n+735 int dim>\n+736 struct Traits<\n+737 topologyId, CoordType, coerceToId, dim,\n+738 typename _\bs_\bt_\bd::enable_if<\n+739 ((GeometryTypes::simplex(dim).id() >> 1) ==\n+740 (topologyId >> 1) &&\n+741 (GeometryTypes::simplex(dim).id() >> 1) ==\n+742 (coerceToId >> 1)\n+743 )>::type\n+744 >\n+745 {\n+746 typedef Simplex::RefinementImp<dim, CoordType> Imp;\n+747 };\n+748#endif\n+749\n+750\n+751 } // namespace RefinementImp\n+752\n+753} // namespace Dune\n+754\n+755#endif //DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n+_\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\ba_\br_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh\n-_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh\n-_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh\n+_\bb_\ba_\bs_\be_\b._\bc_\bc\n+This file contains the parts independent of a particular Refinement\n+implementation.\n _\bs_\bt_\bd\n STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\bI_\bn_\bd_\be_\bx\n+int pointIndex(const FieldVector< int, dimension > &point)\n+calculate the index of a given gridpoint within a Kuhn0 simplex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:280\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n+FieldVector< int, n > getPermutation(int m)\n+Calculate permutation from it's index.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n+FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n+dimension > point, const FieldVector< int, dimension > &kuhn)\n+Map from the reference simplex to some Kuhn simplex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bk_\bu_\bh_\bn_\bT_\bo_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+FieldVector< CoordType, dimension > kuhnToReference(FieldVector< CoordType,\n+dimension > point, const FieldVector< int, dimension > &kuhn)\n+Map from some Kuhn simplex to the reference simplex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:341\n _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n Class providing access to the singletons of the reference elements.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename Container::ReferenceElement ReferenceElement\n-The reference element type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Geometry parametrized by a LocalFunction and a LocalGeometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:65\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-std::remove_reference_t< decltype(std::declval< Map >()(std::declval< typename\n-Geo::GlobalCoordinate >()))> GlobalCoordinate\n-type of global coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n-GlobalCoordinate center() const\n-Map the center of the wrapped geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:162\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n-&local) const\n-Obtain the transposed of the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:310\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n-Obtain the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:296\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n-Obtain the transposed of the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:284\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-MappedGeometry(Map_ &&mapping, Geo_ &&geometry, bool affine=false)\n-Constructor from mapping to parametrize the geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:125\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed\n-type of jacobian transposed\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:89\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int mydimension\n-geometry dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:77\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n-GeometryType type() const\n-Obtain the geometry type from the reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:143\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-typename Geo::LocalCoordinate LocalCoordinate\n-type of local coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:68\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n-typename Geo::ctype ctype\n-coordinate type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:74\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n-LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions<\n-ctype > opts={}) const\n-Evaluate the inverse coordinate mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:197\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Geo Geometry\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n-GlobalCoordinate corner(int i) const\n-Obtain coordinates of the i-th corner.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:155\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static constexpr int coorddimension\n-coordinate dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:80\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed\n-type of jacobian inverse transposed\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:95\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bp_\bp_\bi_\bn_\bg\n-Map Mapping\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:105\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n-GlobalCoordinate global(const LocalCoordinate &local) const\n-Evaluate the coordinate mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:176\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\bE_\bl_\be_\bm_\be_\bn_\bt\n-ReferenceElement refElement() const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:323\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const\n-Obtain the volume of the mapping's image by given quadrature rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:259\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n-int corners() const\n-Obtain number of corners of the corresponding reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:149\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n-type of jacobian inverse\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:92\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-friend ReferenceElement referenceElement(const MappedGeometry &geometry)\n-Obtain the reference-element related to this geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:316\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const\n-Obtain the volume of the mapping's image.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:241\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n-std::remove_reference_t< decltype(Dune::power(std::declval< ctype >(),\n-mydimension))> Volume\n-type of volume\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:83\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n-bool affine() const\n-Is this mapping affine? Not in general, since we don't know anything about the\n-mapping....\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:137\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bD_\be_\br_\bi_\bv_\ba_\bt_\bi_\bv_\be_\bM_\ba_\bp_\bp_\bi_\bn_\bg\n-std::remove_reference_t< decltype(derivative(std::declval< Map >()))>\n-DerivativeMapping\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:111\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-Jacobian jacobian(const LocalCoordinate &local) const\n-Obtain the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:272\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br\n-Impl::FieldMatrixHelper< ctype > MatrixHelper\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:102\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n-type of jacobian\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:86\n-_\bD_\bu_\bn_\be_\b:_\b:_\bM_\ba_\bp_\bp_\be_\bd_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n-ctype integrationElement(const LocalCoordinate &local) const\n-Obtain the integration element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn mappedgeometry.hh:225\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-Abstract base class for quadrature rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n-A container for all quadrature rules of dimension dim\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-Unique label for each type of entities that can occur in DUNE grids.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx\n+static const ReferenceElement & simplex()\n+get simplex reference elements\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:162\n+_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+Static tag representing a codimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n+_\bD_\bu_\bn_\be_\b:_\b:_\bC_\ba_\bc_\bh_\be_\bd_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Implement a MultiLinearGeometry with additional caching.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:526\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:368\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< int, dimension+1 > IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:371\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n+CoordType ctype\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:364\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static int nVertices(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:394\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static int nElements(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:418\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:434\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:410\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:370\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:402\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:426\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:369\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:363\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:385\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Dune::CachedMultiLinearGeometry< CoordType, dimension-codimension, dimension >\n+Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:388\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:445\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:451\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:454\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:453\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bv_\be_\br_\bt_\be_\bx\n+Vertex vertex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:471\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< dimension >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:455\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n+RefinementIteratorSpecial< dimension, CoordType, dimension > This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:456\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx\n+FieldVector< int, dimension > Vertex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:468\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be\n+int size\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:470\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:541\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n+int kuhnIndex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:568\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx\n+FieldVector< int, dimension > Vertex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:564\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bo_\br_\bi_\bg_\bi_\bn\n+Vertex origin\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:567\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx_\b_\n+int index_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:570\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< 0 >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:546\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:544\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:545\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n+RefinementIteratorSpecial< dimension, CoordType, 0 > This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:547\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:543\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n+_\b0_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be\n+int size\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:569\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(int nIntervals, bool end=false)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:705\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00236.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00236.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: virtualrefinement.hh File Reference</title>\n+<title>dune-geometry: base.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,59 +65,87 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> |\n <a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">virtualrefinement.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">base.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p>This file contains the virtual wrapper around refinement. \n+<p>This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. \n <a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <vector></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include "<a class=\"el\" href=\"a00176_source.html\">refinement.hh</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00173_source.html\">type.hh</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a>"</code><br />\n+<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n </div>\n <p><a href=\"a00236_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01459.html\">Dune::VirtualRefinement< dimension, CoordType ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\"><a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> base class. <a href=\"a01459.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01219.html\">Dune::RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension, Dummy ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Mapping from <em>geometryType</em>, <em>CoordType</em> and <em>coerceTo</em> to a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <a href=\"a01219.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01463.html\">Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">codim database of <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> <a href=\"a01463.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01223.html\">Dune::RefinementIntervals</a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Holds the number of refined intervals per axis needed for virtual and static refinement. <a href=\"a01223.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01227.html\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension_ ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Wrap each <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation to get a consistent interface. <a href=\"a01227.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01231.html\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension_ >::Codim< codimension ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">The <a class=\"el\" href=\"a01231.html\" title=\"The Codim struct inherited from the Refinement implementation.\">Codim</a> struct inherited from the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <a href=\"a01231.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:ab8232ef779e57c3676c54a73bd759f72\" id=\"r_ab8232ef779e57c3676c54a73bd759f72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00236.html#ab8232ef779e57c3676c54a73bd759f72\">DUNE_GEOMETRY_REFINEMENT_BASE_CC</a></td></tr>\n+<tr class=\"separator:ab8232ef779e57c3676c54a73bd759f72\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\" id=\"r_a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01459.html\">VirtualRefinement</a>< dimension, CoordType > & </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"el\" href=\"a01367.html\">GeometryType</a> coerceTo)</td></tr>\n-<tr class=\"memdesc:a73043181be4688f6cc83f1416cc176c6\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">return a reference to the <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> according to the parameters <br /></td></tr>\n-<tr class=\"separator:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:ga803bd3e72a1dc194c660659d0e87c2d3\" id=\"r_ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01223.html\">RefinementIntervals</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">Dune::refinementIntervals</a> (int intervals)</td></tr>\n+<tr class=\"memdesc:ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Creates a <a class=\"el\" href=\"a01223.html\" title=\"Holds the number of refined intervals per axis needed for virtual and static refinement.\">RefinementIntervals</a> object. <br /></td></tr>\n+<tr class=\"separator:ga803bd3e72a1dc194c660659d0e87c2d3\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:ga93defb58afad2ca665a30f98a30ecd3f\" id=\"r_ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01223.html\">RefinementIntervals</a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">Dune::refinementLevels</a> (int levels)</td></tr>\n+<tr class=\"memdesc:ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Creates a <a class=\"el\" href=\"a01223.html\" title=\"Holds the number of refined intervals per axis needed for virtual and static refinement.\">RefinementIntervals</a> object. <br /></td></tr>\n+<tr class=\"separator:ga93defb58afad2ca665a30f98a30ecd3f\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the virtual wrapper around refinement. </p>\n-</div></div><!-- contents -->\n+<div class=\"textblock\"><p>This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"ab8232ef779e57c3676c54a73bd759f72\" name=\"ab8232ef779e57c3676c54a73bd759f72\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab8232ef779e57c3676c54a73bd759f72\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_BASE_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_BASE_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n+</div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,37 +1,56 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-virtualrefinement.hh File Reference\n-This file contains the virtual wrapper around refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <vector>\n-#include <dune/common/fvector.hh>\n-#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n-#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-#include \"_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\"\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+base.cc File Reference\n+This file contains the parts independent of a particular _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt base class. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bD_\bu_\bm_\bm_\by_\b _\b>\n+\u00a0 Mapping from g\bge\beo\bom\bme\bet\btr\bry\byT\bTy\byp\bpe\be, C\bCo\boo\bor\brd\bdT\bTy\byp\bpe\be and c\bco\boe\ber\brc\bce\beT\bTo\bo to a particular\n+ _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0 codim database of _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+\u00a0 Holds the number of refined intervals per axis needed for virtual and\n+ static refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b_\n+ _\b>\n+\u00a0 Wrap each _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation to get a consistent interface.\n+ _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b_\n+ _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0 The _\bC_\bo_\bd_\bi_\bm struct inherited from the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bB_\bA_\bS_\bE_\b__\bC_\bC\n+\u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<int dimension, class CoordType >\n-_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt< dimension, CoordType > _\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n- &\u00a0 geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n- return a reference to the\n-\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt according to the\n- parameters\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs (int intervals)\n+\u00a0 Creates a _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs object.\n+\u00a0\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs (int levels)\n+\u00a0 Creates a _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs object.\n \u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the virtual wrapper around refinement.\n+This file contains the parts independent of a particular _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+implementation.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_B\bBA\bAS\bSE\bE_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_REFINEMENT_BASE_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00236_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00236_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: virtualrefinement.hh Source File</title>\n+<title>dune-geometry: base.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,139 +70,199 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">virtualrefinement.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">base.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00236.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00236.html#ab8232ef779e57c3676c54a73bd759f72\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span><span class=\"preprocessor\">#include <vector></span></div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> </div>\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> </div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00176.html\">refinement.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00173.html\">type.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> </div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span>{</div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"comment\">// //////////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> <span class=\"comment\">// The virtual base class and its iterators</span></div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"comment\">// Refinement</span></div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> </div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00282\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html\"> 282</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a></div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> {</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01463.html\">Codim</a>;</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\"> 288</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\"> 290</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> </div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\"> 297</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\"> 303</a></span> <span class=\"keyword\">typedef</span> std::vector<int> <a class=\"code hl_typedef\" href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> </div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack</a>;</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a07310e9597e483f2314467b980796470\"> 307</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<dimension></a> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a>;</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\"> 308</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<0></a> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a>;</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> </div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\"> 315</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\">nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> </div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> </div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> </div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\"> 336</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\">nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> </div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00353\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\"> 353</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\">~VirtualRefinement</a>()</div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> </div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\"> 357</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\">vBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\"> 358</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VertexIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\">vEndBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\"> 359</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\">eBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\"> 360</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">ElementIteratorBack</a> *<a class=\"code hl_function\" href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\">eEndBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> </div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00366\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01463.html\"> 366</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01463.html\">Codim</a></div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> {</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span> </div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"comment\">// ////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"comment\">// The refinement builder</span></div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <a class=\"code hl_function\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">buildRefinement</a>(<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> coerceTo);</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> </div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00239.html\">virtualrefinement.cc</a>"</span></div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_VIRTUALREFINEMENT_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00176_html\"><div class=\"ttname\"><a href=\"a00176.html\">refinement.hh</a></div><div class=\"ttdoc\">This file simply includes all Refinement implementations so you don't have to do them separately.</div></div>\n-<div class=\"ttc\" id=\"aa00239_html\"><div class=\"ttname\"><a href=\"a00239.html\">virtualrefinement.cc</a></div><div class=\"ttdoc\">This file contains the virtual wrapper around refinement.</div></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n+<div class=\"foldopen\" id=\"foldopen00028\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00269.html\"> 28</a></span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> {</div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// /////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// Declaration of RefinementImp::Traits</span></div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// This is just for Doxygen</span></div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class </span>Dummy = <span class=\"keywordtype\">void</span>></div>\n+<div class=\"foldopen\" id=\"foldopen00069\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01219.html\"> 69</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01219.html\">Traits</a></div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> {</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <span class=\"keyword\">typedef</span> SquaringTheCircle::Refinement Imp;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span><span class=\"preprocessor\">#else </span><span class=\"comment\">// !DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span> </div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> <span class=\"comment\">// Doxygen won't see this</span></div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class </span>= <span class=\"keywordtype\">void</span>></div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01219.html\">Traits</a>;</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> </div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// !DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> </div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00094\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html\"> 94</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{</div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keywordtype\">int</span> intervals_=1;</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\"> 98</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\">RefinementIntervals</a>(<span class=\"keywordtype\">int</span> i) : intervals_(i) {}</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> </div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\"> 100</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>()<span class=\"keyword\"> const </span>{ <span class=\"keywordflow\">return</span> intervals_; }</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\"> 108</a></span> <span class=\"keyword\">inline</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a> <a class=\"code hl_function\" href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">refinementIntervals</a>(<span class=\"keywordtype\">int</span> intervals)</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{intervals};</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> }</div>\n+</div>\n+<div class=\"foldopen\" id=\"foldopen00117\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\"> 117</a></span> <span class=\"keyword\">inline</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a> <a class=\"code hl_function\" href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">refinementLevels</a>(<span class=\"keywordtype\">int</span> levels)</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01223.html\">RefinementIntervals</a>{1<<levels};</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"comment\">// ///////////////</span></div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"comment\">// Static Refinement</span></div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension_></div>\n+<div class=\"foldopen\" id=\"foldopen00138\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html\"> 138</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01227.html\">StaticRefinement</a></div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> : <span class=\"keyword\">public</span> <a class=\"code hl_struct\" href=\"a01219.html\">RefinementImp::Traits</a><topologyId, CoordType,</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> coerceToId, dimension_ >::Imp</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> {</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00150\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01231.html\"> 150</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01231.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> {</div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\"> 157</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\">SubEntityIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> </div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\"> 161</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01231.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\"> 163</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_struct\" href=\"a01231.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> </div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\"> 170</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\"> 177</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_variable\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\"> 180</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_>::Imp <a class=\"code hl_typedef\" href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\">RefinementImp</a>;</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keyword\">using </span>RefinementImp::dimension;</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> </div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> <span class=\"keyword\">using </span>RefinementImp::Codim;</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> </div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> <span class=\"keyword\">using </span>typename RefinementImp::VertexIterator;</div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">using </span>typename RefinementImp::CoordVector;</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> </div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">using </span>typename RefinementImp::ElementIterator;</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <span class=\"keyword\">using </span>typename RefinementImp::IndexVector;</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00197\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a8922c129d11181e8206f719803931346\"> 197</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01227.html#a8922c129d11181e8206f719803931346\">nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> {</div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keywordflow\">return</span> RefinementImp::nVertices(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00207\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\"> 207</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> {</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keywordflow\">return</span> RefinementImp::vBegin(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00217\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\"> 217</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> {</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keywordflow\">return</span> RefinementImp::vEnd(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00227\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\"> 227</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> {</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keywordflow\">return</span> RefinementImp::nElements(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00237\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\"> 237</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> {</div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"keywordflow\">return</span> RefinementImp::eBegin(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> </div>\n+<div class=\"foldopen\" id=\"foldopen00247\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\"> 247</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> {</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordflow\">return</span> RefinementImp::eEnd(tag.<a class=\"code hl_function\" href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">intervals</a>());</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> </div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_BASE_CC</span></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00260_html_ga803bd3e72a1dc194c660659d0e87c2d3\"><div class=\"ttname\"><a href=\"a00260.html#ga803bd3e72a1dc194c660659d0e87c2d3\">Dune::refinementIntervals</a></div><div class=\"ttdeci\">RefinementIntervals refinementIntervals(int intervals)</div><div class=\"ttdoc\">Creates a RefinementIntervals object.</div><div class=\"ttdef\"><b>Definition</b> base.cc:108</div></div>\n+<div class=\"ttc\" id=\"aa00260_html_ga93defb58afad2ca665a30f98a30ecd3f\"><div class=\"ttname\"><a href=\"a00260.html#ga93defb58afad2ca665a30f98a30ecd3f\">Dune::refinementLevels</a></div><div class=\"ttdeci\">RefinementIntervals refinementLevels(int levels)</div><div class=\"ttdoc\">Creates a RefinementIntervals object.</div><div class=\"ttdef\"><b>Definition</b> base.cc:117</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a73043181be4688f6cc83f1416cc176c6\"><div class=\"ttname\"><a href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType geometryType, GeometryType coerceTo)</div><div class=\"ttdoc\">return a reference to the VirtualRefinement according to the parameters</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:503</div></div>\n+<div class=\"ttc\" id=\"aa01219_html\"><div class=\"ttname\"><a href=\"a01219.html\">Dune::RefinementImp::Traits</a></div><div class=\"ttdoc\">Mapping from geometryType, CoordType and coerceTo to a particular Refinement implementation.</div><div class=\"ttdef\"><b>Definition</b> base.cc:70</div></div>\n <div class=\"ttc\" id=\"aa01223_html\"><div class=\"ttname\"><a href=\"a01223.html\">Dune::RefinementIntervals</a></div><div class=\"ttdoc\">Holds the number of refined intervals per axis needed for virtual and static refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:94</div></div>\n-<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01423_html\"><div class=\"ttname\"><a href=\"a01423.html\">Dune::VirtualRefinement::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:231</div></div>\n-<div class=\"ttc\" id=\"aa01459_html\"><div class=\"ttname\"><a href=\"a01459.html\">Dune::VirtualRefinement</a></div><div class=\"ttdoc\">VirtualRefinement base class.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:283</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a07310e9597e483f2314467b980796470\"><div class=\"ttname\"><a href=\"a01459.html#a07310e9597e483f2314467b980796470\">Dune::VirtualRefinement::VertexIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< dimension > VertexIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:307</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a2133dc6341884d97ae1204a01e0a69dd\"><div class=\"ttname\"><a href=\"a01459.html#a2133dc6341884d97ae1204a01e0a69dd\">Dune::VirtualRefinement::eEndBack</a></div><div class=\"ttdeci\">virtual ElementIteratorBack * eEndBack(Dune::RefinementIntervals tag) const =0</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a48a0b20da4d3a262b8aa94999c03ec4c\"><div class=\"ttname\"><a href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">Dune::VirtualRefinement::vBegin</a></div><div class=\"ttdeci\">VertexIterator vBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:38</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a58217a0701cdf7458ab63b09948dcd18\"><div class=\"ttname\"><a href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">Dune::VirtualRefinement::eBegin</a></div><div class=\"ttdeci\">ElementIterator eBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:54</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a5cc985e701190f220118f89d12a93e59\"><div class=\"ttname\"><a href=\"a01459.html#a5cc985e701190f220118f89d12a93e59\">Dune::VirtualRefinement::nElements</a></div><div class=\"ttdeci\">virtual int nElements(Dune::RefinementIntervals tag) const =0</div><div class=\"ttdoc\">Get the number of Elements.</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a76668e0abfac920b12f8d34feca43054\"><div class=\"ttname\"><a href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">Dune::VirtualRefinement::eEnd</a></div><div class=\"ttdeci\">ElementIterator eEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:62</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a7e14c2a7c4d16a2c1760f6e447246f1c\"><div class=\"ttname\"><a href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">Dune::VirtualRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:290</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a82608f84d03bf3377c0949d528300c5e\"><div class=\"ttname\"><a href=\"a01459.html#a82608f84d03bf3377c0949d528300c5e\">Dune::VirtualRefinement::~VirtualRefinement</a></div><div class=\"ttdeci\">virtual ~VirtualRefinement()</div><div class=\"ttdoc\">Destructor.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:353</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a842f9ea89c5bc1de43825973ae9ee7f8\"><div class=\"ttname\"><a href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">Dune::VirtualRefinement::vEnd</a></div><div class=\"ttdeci\">VertexIterator vEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:46</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ac1bbbac41ae70b73baf8f702419c5d87\"><div class=\"ttname\"><a href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">Dune::VirtualRefinement::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdoc\">The CoordVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:297</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ac6a87e6fe85c810ba8533b6ca4c10e53\"><div class=\"ttname\"><a href=\"a01459.html#ac6a87e6fe85c810ba8533b6ca4c10e53\">Dune::VirtualRefinement::nVertices</a></div><div class=\"ttdeci\">virtual int nVertices(Dune::RefinementIntervals tag) const =0</div><div class=\"ttdoc\">Get the number of Vertices.</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ad2fc3369b556cea8a185cc9887511129\"><div class=\"ttname\"><a href=\"a01459.html#ad2fc3369b556cea8a185cc9887511129\">Dune::VirtualRefinement::IndexVector</a></div><div class=\"ttdeci\">std::vector< int > IndexVector</div><div class=\"ttdoc\">The IndexVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:303</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ad5eaa227e5deeb688dad02b635829455\"><div class=\"ttname\"><a href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">Dune::VirtualRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:288</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_aea3e4ccd649fe10bc0b1eb4091492820\"><div class=\"ttname\"><a href=\"a01459.html#aea3e4ccd649fe10bc0b1eb4091492820\">Dune::VirtualRefinement::vEndBack</a></div><div class=\"ttdeci\">virtual VertexIteratorBack * vEndBack(Dune::RefinementIntervals tag) const =0</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_af14612af29e934d64e11384e81b414f3\"><div class=\"ttname\"><a href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">Dune::VirtualRefinement::ElementIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< 0 > ElementIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:308</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_af6f0aa8bee68e5c7004306fbf7c59d08\"><div class=\"ttname\"><a href=\"a01459.html#af6f0aa8bee68e5c7004306fbf7c59d08\">Dune::VirtualRefinement::eBeginBack</a></div><div class=\"ttdeci\">virtual ElementIteratorBack * eBeginBack(Dune::RefinementIntervals tag) const =0</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_afa7bc349f80966d4a85a7c305795c0d4\"><div class=\"ttname\"><a href=\"a01459.html#afa7bc349f80966d4a85a7c305795c0d4\">Dune::VirtualRefinement::vBeginBack</a></div><div class=\"ttdeci\">virtual VertexIteratorBack * vBeginBack(Dune::RefinementIntervals tag) const =0</div></div>\n-<div class=\"ttc\" id=\"aa01463_html\"><div class=\"ttname\"><a href=\"a01463.html\">Dune::VirtualRefinement::Codim</a></div><div class=\"ttdoc\">codim database of VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:367</div></div>\n+<div class=\"ttc\" id=\"aa01223_html_a4e8f7b39059e869a98f60bbecc272659\"><div class=\"ttname\"><a href=\"a01223.html#a4e8f7b39059e869a98f60bbecc272659\">Dune::RefinementIntervals::RefinementIntervals</a></div><div class=\"ttdeci\">RefinementIntervals(int i)</div><div class=\"ttdef\"><b>Definition</b> base.cc:98</div></div>\n+<div class=\"ttc\" id=\"aa01223_html_abc6853f9d453cefd029e5e221ad78970\"><div class=\"ttname\"><a href=\"a01223.html#abc6853f9d453cefd029e5e221ad78970\">Dune::RefinementIntervals::intervals</a></div><div class=\"ttdeci\">int intervals() const</div><div class=\"ttdef\"><b>Definition</b> base.cc:100</div></div>\n+<div class=\"ttc\" id=\"aa01227_html\"><div class=\"ttname\"><a href=\"a01227.html\">Dune::StaticRefinement</a></div><div class=\"ttdoc\">Wrap each Refinement implementation to get a consistent interface.</div><div class=\"ttdef\"><b>Definition</b> base.cc:141</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a12852b48095c6a9dcb52a9259090fe00\"><div class=\"ttname\"><a href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">Dune::StaticRefinement::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:247</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a269d7e427663d9584b8c1cf21b80b95a\"><div class=\"ttname\"><a href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">Dune::StaticRefinement::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:237</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a2eca414a7fae0d7774745b81e6b540ac\"><div class=\"ttname\"><a href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">Dune::StaticRefinement::nElements</a></div><div class=\"ttdeci\">static int nElements(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> base.cc:227</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a36b716bea885fc1ca44e78fa31be025d\"><div class=\"ttname\"><a href=\"a01227.html#a36b716bea885fc1ca44e78fa31be025d\">Dune::StaticRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:163</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a8922c129d11181e8206f719803931346\"><div class=\"ttname\"><a href=\"a01227.html#a8922c129d11181e8206f719803931346\">Dune::StaticRefinement::nVertices</a></div><div class=\"ttdeci\">static int nVertices(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> base.cc:197</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_a9b24b410ce9d175a603d21bc2d2bdaa4\"><div class=\"ttname\"><a href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">Dune::StaticRefinement::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:207</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_aa1db43f3390896e5f0df86f9c2a056ac\"><div class=\"ttname\"><a href=\"a01227.html#aa1db43f3390896e5f0df86f9c2a056ac\">Dune::StaticRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:161</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_ab6bda4f34063ff98485b06859e4c3bdf\"><div class=\"ttname\"><a href=\"a01227.html#ab6bda4f34063ff98485b06859e4c3bdf\">Dune::StaticRefinement::CoordVector</a></div><div class=\"ttdeci\">typedef CoordVector</div><div class=\"ttdoc\">The CoordVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:170</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_ad21cde66bb348bbc1f4d543142145c70\"><div class=\"ttname\"><a href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">Dune::StaticRefinement::IndexVector</a></div><div class=\"ttdeci\">typedef IndexVector</div><div class=\"ttdoc\">The IndexVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:177</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_ae03d30ecd06ac7aac7f6e3d49948ac05\"><div class=\"ttname\"><a href=\"a01227.html#ae03d30ecd06ac7aac7f6e3d49948ac05\">Dune::StaticRefinement::RefinementImp</a></div><div class=\"ttdeci\">RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_ >::Imp RefinementImp</div><div class=\"ttdef\"><b>Definition</b> base.cc:180</div></div>\n+<div class=\"ttc\" id=\"aa01227_html_afd95b0b6fb8ffdb1e29d09933c491f9f\"><div class=\"ttname\"><a href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">Dune::StaticRefinement::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:217</div></div>\n+<div class=\"ttc\" id=\"aa01231_html\"><div class=\"ttname\"><a href=\"a01231.html\">Dune::StaticRefinement::Codim</a></div><div class=\"ttdoc\">The Codim struct inherited from the Refinement implementation.</div><div class=\"ttdef\"><b>Definition</b> base.cc:151</div></div>\n+<div class=\"ttc\" id=\"aa01231_html_aaa6d7c44a9cd374f213dc194e9426438\"><div class=\"ttname\"><a href=\"a01231.html#aaa6d7c44a9cd374f213dc194e9426438\">Dune::StaticRefinement::Codim::SubEntityIterator</a></div><div class=\"ttdeci\">typedef SubEntityIterator</div><div class=\"ttdoc\">The SubEntityIterator for each codim.</div><div class=\"ttdef\"><b>Definition</b> base.cc:157</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,186 +1,223 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-virtualrefinement.hh\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+base.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n-6#define DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n+5#ifndef DUNE_GEOMETRY_REFINEMENT_BASE_CC\n+_\b6#define DUNE_GEOMETRY_REFINEMENT_BASE_CC\n 7\n-257#include <vector>\n-258\n-259#include <dune/common/fvector.hh>\n-260\n-261#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n-262#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-263\n-264namespace _\bD_\bu_\bn_\be\n-265{\n-266 // //////////////////////////////////////////\n-267 //\n-268 // The virtual base class and its iterators\n-269 //\n-270\n-271 //\n-272 // Refinement\n-273 //\n-274\n-281 template<int dimension, class CoordType>\n-_\b2_\b8_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-283 {\n-284 public:\n-285 template<int codimension>\n-286 struct _\bC_\bo_\bd_\bi_\bm;\n-_\b2_\b8_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b2_\b9_\b0 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-291\n-_\b2_\b9_\b7 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-_\b3_\b0_\b3 typedef std::vector<int> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-304\n-305 template<int codimension>\n-306 class _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n-_\b3_\b0_\b7 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n-_\b3_\b0_\b8 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\b0_\b> _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n-309\n-_\b3_\b1_\b5 virtual int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const = 0;\n-316\n-322 _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n-323\n-329 _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n-330\n-_\b3_\b3_\b6 virtual int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const = 0;\n-337\n-343 _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n-344\n-350 _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const;\n-351\n-_\b3_\b5_\b3 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt()\n-354 {}\n-355\n-356 protected:\n-_\b3_\b5_\b7 virtual _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-= 0;\n-_\b3_\b5_\b8 virtual _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\bv_\bE_\bn_\bd_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const =\n-0;\n-_\b3_\b5_\b9 virtual _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n-const = 0;\n-_\b3_\b6_\b0 virtual _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *_\be_\bE_\bn_\bd_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-= 0;\n-361 };\n-362\n-364 template<int dimension, class CoordType>\n-365 template<int codimension>\n-_\b3_\b6_\b6 struct _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n-367 {\n-368 class SubEntityIterator;\n-369 };\n-370\n-371 // ////////////////////////\n-372 //\n-373 // The refinement builder\n-374 //\n-375\n-376 template<int dimension, class CoordType>\n-377 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n-378 _\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt(_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo);\n-379\n-380} // namespace Dune\n-381\n-382#include \"_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\"\n-383\n-384#endif // DUNE_GEOMETRY_VIRTUALREFINEMENT_HH\n+15#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+16\n+17namespace _\bD_\bu_\bn_\be\n+18{\n+_\b2_\b8 namespace RefinementImp\n+29 {\n+30 // /////////////////////////////////\n+31 //\n+32 // Declaration of RefinementImp::Traits\n+33 //\n+34\n+35#ifdef DOXYGEN\n+36 // This is just for Doxygen\n+67 template<unsigned topologyId, class CoordType,\n+68 unsigned coerceToId, int dimension, class Dummy = void>\n+_\b6_\b9 struct _\bT_\br_\ba_\bi_\bt_\bs\n+70 {\n+72 typedef SquaringTheCircle::Refinement Imp;\n+73 };\n+74\n+75#else // !DOXYGEN\n+76\n+77 // Doxygen won't see this\n+78\n+79 template<unsigned topologyId, class CoordType,\n+80 unsigned coerceToId, int dimension, class = void>\n+81 struct _\bT_\br_\ba_\bi_\bt_\bs;\n+82\n+83#endif // !DOXYGEN\n+84 } // namespace RefinementImp\n+85\n+86\n+_\b9_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{\n+95 int intervals_=1;\n+96\n+97 public:\n+_\b9_\b8 explicit _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs(int i) : intervals_(i) {}\n+99\n+_\b1_\b0_\b0 int _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs() const { return intervals_; }\n+101 };\n+102\n+_\b1_\b0_\b8 inline _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs(int intervals)\n+109 {\n+110 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{intervals};\n+111 }\n+_\b1_\b1_\b7 inline _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs(int levels)\n+118 {\n+119 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs{1<<levels};\n+120 }\n+121\n+122 // ///////////////\n+123 //\n+124 // Static Refinement\n+125 //\n+126\n+136 template<unsigned topologyId, class CoordType,\n+137 unsigned coerceToId, int dimension_>\n+_\b1_\b3_\b8 class _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+139 : public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs<topologyId, CoordType,\n+140 coerceToId, dimension_ >::Imp\n+141 {\n+142 public:\n+143#ifdef DOXYGEN\n+149 template<int codimension>\n+_\b1_\b5_\b0 struct _\bC_\bo_\bd_\bi_\bm\n+151 {\n+_\b1_\b5_\b7 typedef _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+158 };\n+159\n+_\b1_\b6_\b1 typedef _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b1_\b6_\b3 typedef _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+164\n+_\b1_\b7_\b0 typedef _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+171\n+_\b1_\b7_\b7 typedef _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+178#endif\n+179\n+_\b1_\b8_\b0 typedef typename RefinementImp::Traits< topologyId, CoordType, coerceToId,\n+dimension_>::Imp _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp;\n+181\n+182 using RefinementImp::dimension;\n+183\n+184 using RefinementImp::Codim;\n+185\n+186 using typename RefinementImp::VertexIterator;\n+187 using typename RefinementImp::CoordVector;\n+188\n+189 using typename RefinementImp::ElementIterator;\n+190 using typename RefinementImp::IndexVector;\n+191\n+_\b1_\b9_\b7 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+198 {\n+199 return RefinementImp::nVertices(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+200 }\n+201\n+_\b2_\b0_\b7 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+208 {\n+209 return RefinementImp::vBegin(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+210 }\n+211\n+_\b2_\b1_\b7 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+218 {\n+219 return RefinementImp::vEnd(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+220 }\n+221\n+_\b2_\b2_\b7 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+228 {\n+229 return RefinementImp::nElements(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+230 }\n+231\n+_\b2_\b3_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+238 {\n+239 return RefinementImp::eBegin(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+240 }\n+241\n+_\b2_\b4_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag)\n+248 {\n+249 return RefinementImp::eEnd(tag._\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs());\n+250 }\n+251 };\n+252\n+254} // namespace Dune\n+255\n+256#endif // DUNE_GEOMETRY_REFINEMENT_BASE_CC\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n-This file simply includes all Refinement implementations so you don't have to\n-do them separately.\n-_\bv_\bi_\br_\bt_\bu_\ba_\bl_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bc_\bc\n-This file contains the virtual wrapper around refinement.\n+_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+RefinementIntervals refinementIntervals(int intervals)\n+Creates a RefinementIntervals object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:108\n+_\bD_\bu_\bn_\be_\b:_\b:_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bL_\be_\bv_\be_\bl_\bs\n+RefinementIntervals refinementLevels(int levels)\n+Creates a RefinementIntervals object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:117\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType\n-geometryType, GeometryType coerceTo)\n-return a reference to the VirtualRefinement according to the parameters\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:503\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bT_\br_\ba_\bi_\bt_\bs\n+Mapping from geometryType, CoordType and coerceTo to a particular Refinement\n+implementation.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:70\n _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n Holds the number of refined intervals per axis needed for virtual and static\n refinement.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:94\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-Unique label for each type of entities that can occur in DUNE grids.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:231\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement base class.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:283\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-SubEntityIteratorBack< dimension > VertexIteratorBack\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:307\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd_\bB_\ba_\bc_\bk\n-virtual ElementIteratorBack * eEndBack(Dune::RefinementIntervals tag) const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-VertexIterator vBegin(Dune::RefinementIntervals tag) const\n-Get an VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:38\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-ElementIterator eBegin(Dune::RefinementIntervals tag) const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+RefinementIntervals(int i)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:98\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b:_\b:_\bi_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n+int intervals() const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:100\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Wrap each Refinement implementation to get a consistent interface.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:141\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(Dune::RefinementIntervals tag)\n Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:54\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-virtual int nElements(Dune::RefinementIntervals tag) const =0\n-Get the number of Elements.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n-ElementIterator eEnd(Dune::RefinementIntervals tag) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:247\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(Dune::RefinementIntervals tag)\n Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:62\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:237\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static int nElements(Dune::RefinementIntervals tag)\n+Get the number of Elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:227\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n Codim< 0 >::SubEntityIterator ElementIterator\n-The ElementIterator of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:290\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-virtual ~VirtualRefinement()\n-Destructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:353\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n-VertexIterator vEnd(Dune::RefinementIntervals tag) const\n-Get an VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:46\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-The CoordVector of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:297\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-virtual int nVertices(Dune::RefinementIntervals tag) const =0\n+The ElementIterator of the Refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:163\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static int nVertices(Dune::RefinementIntervals tag)\n Get the number of Vertices.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-std::vector< int > IndexVector\n-The IndexVector of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:303\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:197\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(Dune::RefinementIntervals tag)\n+Get a VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:207\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n Codim< dimension >::SubEntityIterator VertexIterator\n-The VertexIterator of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:288\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd_\bB_\ba_\bc_\bk\n-virtual VertexIteratorBack * vEndBack(Dune::RefinementIntervals tag) const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-SubEntityIteratorBack< 0 > ElementIteratorBack\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:308\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk\n-virtual ElementIteratorBack * eBeginBack(Dune::RefinementIntervals tag) const\n-=0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk\n-virtual VertexIteratorBack * vBeginBack(Dune::RefinementIntervals tag) const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-codim database of VirtualRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:367\n+The VertexIterator of the Refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:161\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+typedef CoordVector\n+The CoordVector of the Refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:170\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+typedef IndexVector\n+The IndexVector of the Refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:177\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+RefinementImp::Traits< topologyId, CoordType, coerceToId, dimension_ >::Imp\n+RefinementImp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:180\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(Dune::RefinementIntervals tag)\n+Get a VertexIterator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:217\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+The Codim struct inherited from the Refinement implementation.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:151\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+typedef SubEntityIterator\n+The SubEntityIterator for each codim.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:157\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00239.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00239.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: virtualrefinement.cc File Reference</title>\n+<title>dune-geometry: pyramidtriangulation.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,96 +65,80 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n <a href=\"#define-members\">Macros</a> |\n <a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">virtualrefinement.cc File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">pyramidtriangulation.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-\n-<p>This file contains the virtual wrapper around refinement. \n-<a href=\"#details\">More...</a></p>\n-<div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <typeinfo></code><br />\n-<code>#include <dune/common/exceptions.hh></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/iteratorfacades.hh></code><br />\n-<code>#include "<a class=\"el\" href=\"a00173_source.html\">type.hh</a>"</code><br />\n-<code>#include "<a class=\"el\" href=\"a00176_source.html\">refinement.hh</a>"</code><br />\n+<div class=\"textblock\"><code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <dune/common/typetraits.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include "<a class=\"el\" href=\"a00236_source.html\">base.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00233_source.html\">simplex.cc</a>"</code><br />\n </div>\n <p><a href=\"a00239_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01399.html\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01403.html\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01407.html\">Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01415.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, dimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01419.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01423.html\">Dune::VirtualRefinement< dimension, CoordType >::SubEntityIteratorBack< dimension, CoordType ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01311.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the refinement of a pyramid into simplices. <a href=\"a01311.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01427.html\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01315.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01439.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, dimension ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01319.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01443.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01323.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01431.html\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::SubEntityIteratorBack< codimension ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01447.html\">Dune::RefinementBuilder< dimension, CoordType ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01451.html\">Dune::RefinementBuilder< 1, CoordType ></a></td></tr>\n-<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01455.html\">Dune::RefinementBuilder< 3, CoordType ></a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01327.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00273\" id=\"r_a00273\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00273.html\">Dune::RefinementImp::PyramidTriangulation</a></td></tr>\n+<tr class=\"memdesc:a00273\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating pyramids (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\" title=\"Four sided pyramid in three dimensions.\">GeometryType::pyramid</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n Macros</h2></td></tr>\n-<tr class=\"memitem:ac82d420bff6cce87d06ad71b4f1cb0c8\" id=\"r_ac82d420bff6cce87d06ad71b4f1cb0c8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00239.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</a></td></tr>\n-<tr class=\"separator:ac82d420bff6cce87d06ad71b4f1cb0c8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a5f431ee98541c17b3d9aea2dbc726941\" id=\"r_a5f431ee98541c17b3d9aea2dbc726941\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00239.html#a5f431ee98541c17b3d9aea2dbc726941\">DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</a></td></tr>\n+<tr class=\"separator:a5f431ee98541c17b3d9aea2dbc726941\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\" id=\"r_a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n-<tr class=\"memitem:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"a01459.html\">VirtualRefinement</a>< dimension, CoordType > & </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a> geometryType, <a class=\"el\" href=\"a01367.html\">GeometryType</a> coerceTo)</td></tr>\n-<tr class=\"memdesc:a73043181be4688f6cc83f1416cc176c6\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">return a reference to the <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> according to the parameters <br /></td></tr>\n-<tr class=\"separator:a73043181be4688f6cc83f1416cc176c6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a3c4d43135632c0bc83dca6491c2fd16c\" id=\"r_a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">Dune::RefinementImp::PyramidTriangulation::transformCoordinate</a> (FieldVector< CoordType, dimension > point)</td></tr>\n+<tr class=\"separator:a3c4d43135632c0bc83dca6491c2fd16c\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n-<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n-<div class=\"textblock\"><p>This file contains the virtual wrapper around refinement. </p>\n-</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n-<a id=\"ac82d420bff6cce87d06ad71b4f1cb0c8\" name=\"ac82d420bff6cce87d06ad71b4f1cb0c8\"></a>\n-<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac82d420bff6cce87d06ad71b4f1cb0c8\">◆ </a></span>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</h2>\n+<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"a5f431ee98541c17b3d9aea2dbc726941\" name=\"a5f431ee98541c17b3d9aea2dbc726941\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5f431ee98541c17b3d9aea2dbc726941\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</h2>\n \n <div class=\"memitem\">\n <div class=\"memproto\">\n <table class=\"memname\">\n <tr>\n- <td class=\"memname\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</td>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</td>\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n </div><!-- contents -->\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,74 +1,59 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n _\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-virtualrefinement.cc File Reference\n-This file contains the virtual wrapper around refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include <cassert>\n-#include <typeinfo>\n-#include <dune/common/exceptions.hh>\n+pyramidtriangulation.cc File Reference\n #include <dune/common/fvector.hh>\n-#include <dune/common/iteratorfacades.hh>\n-#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n+#include <dune/common/typetraits.hh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0 Implementation of the refinement of a pyramid into simplices. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n- _\b0_\b _\b>\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n \u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n- _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n- _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b1_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n-\u00a0\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b3_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n+ This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n+\u00a0 triangulating pyramids (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\by_\br_\ba_\bm_\bi_\bd -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:\n+ _\bs_\bi_\bm_\bp_\bl_\be_\bx)\n+\u00a0\n M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bV_\bI_\bR_\bT_\bU_\bA_\bL_\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bC_\bC\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bP_\bY_\bR_\bA_\bM_\bI_\bD_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n \u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n template<int dimension, class CoordType >\n-_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt< dimension, CoordType > _\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n- &\u00a0 geometryType, _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n- return a reference to the\n-\u00a0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt according to the\n- parameters\n+FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:\n+ _\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+ (FieldVector< CoordType, dimension >\n+ point)\n \u00a0\n-*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file contains the virtual wrapper around refinement.\n *\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_V\bVI\bIR\bRT\bTU\bUA\bAL\bLR\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n-#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_P\bPY\bYR\bRA\bAM\bMI\bID\bDT\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00239_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00239_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: virtualrefinement.cc Source File</title>\n+<title>dune-geometry: pyramidtriangulation.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,821 +70,524 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">virtualrefinement.cc</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">pyramidtriangulation.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00239.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span> </div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n-<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00239.html#ac82d420bff6cce87d06ad71b4f1cb0c8\"> 7</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <typeinfo></span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00239.html#a5f431ee98541c17b3d9aea2dbc726941\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n+<div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span> </div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00236.html\">base.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00233.html\">simplex.cc</a>"</span></div>\n <div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/exceptions.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> </div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00173.html\">type.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00176.html\">refinement.hh</a>"</span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span> </div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span>{</div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> <span class=\"comment\">// //////////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// The virtual base class and its iterators</span></div>\n-<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> </div>\n-<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> <span class=\"comment\">// Refinement</span></div>\n-<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> </div>\n-<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VirtualRefinement<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00037\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\"> 37</a></span> <a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">VirtualRefinement<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><a class=\"code hl_function\" href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\"> vBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>(vBeginBack(tag));</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> </div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VirtualRefinement<dimension, CoordType>::VertexIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00045\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\"> 45</a></span> <a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">VirtualRefinement<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><a class=\"code hl_function\" href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\"> vEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">VertexIterator</a>(vEndBack(tag));</div>\n-<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">VirtualRefinement<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00053\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\"> 53</a></span> <a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">VirtualRefinement<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span><a class=\"code hl_function\" href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\"> eBegin</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>(eBeginBack(tag));</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> </div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">VirtualRefinement<dimension, CoordType>::ElementIterator</a></div>\n-<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\"> 61</a></span> <a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">VirtualRefinement<dimension, CoordType>::</a></div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span><a class=\"code hl_function\" href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\"> eEnd</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">ElementIterator</a>(eEndBack(tag));</div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"comment\">// The iterators</span></div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01395.html\"> 72</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n+<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00273.html\"> 26</a></span> <span class=\"keyword\">namespace </span>PyramidTriangulation</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// ////////////</span></div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Utilities</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Simplex::getPermutation</a>;</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Simplex::referenceToKuhn</a>;</div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> </div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// ////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// Refine a pyramid with simplices</span></div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">// forward declaration of the iterator base</span></div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01307.html\"> 43</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> <span class=\"comment\">/*</span></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"comment\"> * The permutations 0 and 1 of the Kuhn-decomposition of a cube into simplices form a pyramid.</span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"comment\"> * The resulting pyramid is not oriented the same as the reference pyramid and so the Kuhn-coordinates</span></div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span><span class=\"comment\"> * have to be transformed using the method below.</span></div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"comment\"> */</span></div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType> FieldVector<CoordType, dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00051\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\"> 51</a></span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>( FieldVector<CoordType, dimension> point)</div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> {</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> FieldVector<CoordType, dimension> transform;</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> transform[0]=1-point[0];</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> transform[1]=1-point[1];</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> transform[2]=point[2];</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keywordflow\">return</span> transform;</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> </div>\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00067\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html\"> 67</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a></div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> {</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\"> 70</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a> = dimension_;</div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"> 71</span> </div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\"> 72</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\">ctype</a>;</div>\n <div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"comment\">// The iterator for vertices</span></div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00076\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01399.html\"> 76</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"> 77</span> {};</div>\n-</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> </div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> <span class=\"comment\">// The iterator for elements</span></div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00081\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html\"> 81</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> {</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\"> 84</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Common</a>;</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\"> 86</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <a class=\"code hl_typedef\" href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> </div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00093\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01403.html#a7ce2e03dc5e34cef56e8f4a8f80f6f41\"> 93</a></span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span><a class=\"code hl_class\" href=\"a01395.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Common</a> *<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>)->backend->vertexIndices();</div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> </div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"comment\">// The iterator common stuff</span></div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00102\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html\"> 102</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01463.html\">Codim</a><codimension>::SubEntityIterator</div>\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> {</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\"> 107</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\"> 108</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\"> 109</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a>;</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\"> 110</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> </div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\"> 112</a></span> <a class=\"code hl_function\" href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\">SubEntityIterator</a>(<a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a> *backend);</div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\"> 113</a></span> <a class=\"code hl_function\" href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\">SubEntityIterator</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other);</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\"> 114</a></span> <a class=\"code hl_function\" href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\">~SubEntityIterator</a>();</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> </div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\"> 116</a></span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &<a class=\"code hl_function\" href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\">operator=</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other);</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> </div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\"> 118</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\"> 119</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\">increment</a>();</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> </div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\"> 121</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\">index</a>() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> </div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"comment\">// If you simply use an unqualified CoordVector here g++-4.2 chokes</span></div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::template</a> <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a>::</div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\"> 125</a></span> CoordVector <a class=\"code hl_function\" href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\">coords</a>() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01395.html\">VirtualRefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension>;</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <a class=\"code hl_typedef\" href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">IteratorBack</a> *backend;</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span><a class=\"code hl_class\" href=\"a01459.html\"> SubEntityIterator</a>(IteratorBack *backend_)</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> : backend(backend_)</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {}</div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> </div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span><a class=\"code hl_class\" href=\"a01459.html\"> SubEntityIterator</a>(<span class=\"keyword\">const</span> This &other)</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> : backend(other.backend->clone())</div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> {}</div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01315.html\">Codim</a>;</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\"> 76</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01315.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\"> 77</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\"> 78</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01315.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\"> 79</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> </div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a15d10024428cb4136290fa22c2c68374\"> 87</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> </div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, 0>;</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, <a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>>;</div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> </div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">Simplex::RefinementImp<dimension, CoordType></a> <a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> </div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> </div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00100\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01315.html\"> 100</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01315.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> {</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\"> 103</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01151.html\">Dune::MultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> </div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00108\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\"> 108</a></span> <a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span><a class=\"code hl_function\" href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> {</div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keywordflow\">return</span> BackendRefinement::nVertices(nIntervals) * nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> </div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00116\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\"> 116</a></span> <a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span><a class=\"code hl_function\" href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\"> 124</a></span> <a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span><a class=\"code hl_function\" href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00132\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\"> 132</a></span> <a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span><a class=\"code hl_function\" href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> {</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keywordflow\">return</span> BackendRefinement::nElements(nIntervals) * nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> </div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00140\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\"> 140</a></span> <a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span><a class=\"code hl_function\" href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> {</div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> </div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> ~SubEntityIterator()</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> {</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keyword\">delete</span> backend;</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00148\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\"> 148</a></span> <a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span><a class=\"code hl_function\" href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> {</div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"keyword\">typename</span> VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator &</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> operator=(<span class=\"keyword\">const</span> This &other)</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> {</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">delete</span> backend;</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> backend = other.backend->clone();</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> }</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> </div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> equals(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> *backend == *(other.backend); }</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> </div>\n-<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keywordtype\">void</span></div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> increment()</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> {</div>\n-<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> ++*backend;</div>\n-<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span> }</div>\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> index()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend->index(); }</div>\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"> 186</span> </div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">typename</span> VirtualRefinement<dimension, CoordType>::template Codim<codimension>::SubEntityIterator::CoordVector</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> VirtualRefinement<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n-<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> coords()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend->coords(); }</div>\n-<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n-<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> </div>\n-<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"comment\">// The iterator backend</span></div>\n-<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> </div>\n-<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01411.html\"> 200</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> </div>\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"comment\">// The iterator backend for vertices</span></div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00204\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01415.html\"> 204</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, dimension></div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> {</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00208\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\"> 208</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\">~VirtualRefinementSubEntityIteratorBackSpecial</a>()</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"comment\">// The iterator backend for elements</span></div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00214\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html\"> 214</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, 0></div>\n-<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> {</div>\n-<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\"> 217</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\"> 218</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> </div>\n-<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\"> 220</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">IndexVector</a> <a class=\"code hl_function\" href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\">vertexIndices</a>() <span class=\"keyword\">const</span> = 0;</div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">// //////////////</span></div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// The iterator</span></div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> </div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"comment\">// vertices</span></div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00161\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html\"> 161</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> {</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\"> 164</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\"> 165</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\"> 166</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> </div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> </div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> <span class=\"keywordtype\">void</span> increment();</div>\n+<div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <a class=\"code hl_typedef\" href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> </div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> </div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a89abd492b0117164555202003e024b85\"> 178</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::BackendRefinement <a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\"> 179</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a846f8629ff7b651eaaf8cf21293f3d14\"> 180</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#afed7468a6289d9942692c502b24042fb\"> 182</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01319.html#afed7468a6289d9942692c502b24042fb\">nIntervals_</a>;</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> </div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\"> 184</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\">kuhnIndex</a>;</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\"> 185</a></span> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\">backend</a>;</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\"> 186</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\">backendEnd</a>;</div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> </div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00190\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ae0a9bc09a85835b81cc07b4da4edd3dd\"> 190</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span><a class=\"code hl_class\" href=\"a01307.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> backend(<a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>::vBegin(nIntervals_)),</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> backendEnd(<a class=\"code hl_typedef\" href=\"a01319.html#a89abd492b0117164555202003e024b85\">BackendRefinement</a>::vEnd(nIntervals_))</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> {</div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keywordflow\">if</span> (end)</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> kuhnIndex = nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> </div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00202\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ab0d4fc7d88bb0411e6620532812bf2ac\"> 202</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><a class=\"code hl_class\" href=\"a01307.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> {</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ++backend;</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">if</span>(backend == backendEnd)</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> {</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> backend = BackendRefinement::vBegin(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> ++kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> }</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00215\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#ada6b99cefed7fcc1488c07503265cef3\"> 215</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span><a class=\"code hl_class\" href=\"a01307.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> getPermutation<dimension>(kuhnIndex)));</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"> 221</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00222\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\"> 222</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\">~VirtualRefinementSubEntityIteratorBackSpecial</a>()</div>\n-<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> </div>\n-<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"comment\">// The iterator backend common stuff</span></div>\n-<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00229\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html\"> 229</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::<a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack</a></div>\n-<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01411.html\">VirtualRefinementSubEntityIteratorBackSpecial</a><dimension, CoordType, codimension></div>\n-<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> {</div>\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\"> 233</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\">Refinement</a>;</div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\"> 234</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_class\" href=\"a01423.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\"> 235</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> </div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\"> 237</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_function\" href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\">~SubEntityIteratorBack</a>() {}</div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n+<div class=\"foldopen\" id=\"foldopen00224\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a43cec2c82f56374e62bab02d914c899c\"> 224</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> std::vector<CoordVector> corners(1);</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>(kuhnIndex));</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> </div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00233\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01319.html#a2a4ef1c16ecc8198811bee640920008b\"> 233</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span><a class=\"code hl_class\" href=\"a01307.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index();</div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> }</div>\n+</div>\n <div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> </div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\"> 239</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> *<a class=\"code hl_function\" href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\">clone</a>() <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\"> 241</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\">operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> &other) <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\"> 242</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">This</a> &<a class=\"code hl_function\" href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\">operator++</a>() = 0;</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\"> 244</a></span> <span class=\"keyword\">virtual</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\">index</a>() <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\"> 245</a></span> <span class=\"keyword\">virtual</span> <a class=\"code hl_typedef\" href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">CoordVector</a> <a class=\"code hl_function\" href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\">coords</a>() <span class=\"keyword\">const</span> = 0;</div>\n-<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> </div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"comment\">// /////////////////////////////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"comment\">// The derived classes and their iterator backends</span></div>\n-<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"comment\">// elements</span></div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00241\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html\"> 241</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> {</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\"> 244</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\"> 246</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\"> 247</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> </div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <span class=\"keywordtype\">void</span> increment();</div>\n <div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> </div>\n-<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"comment\">// The refinement implementation</span></div>\n-<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n <div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> </div>\n-<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00259\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html\"> 259</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a></div>\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">Dune::VirtualRefinement</a><dimension, CoordType></div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> {</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\"> 263</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01227.html\">Dune::StaticRefinement<topologyId, CoordType, coerceToId, dimension></a> <a class=\"code hl_typedef\" href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\">StaticRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\"> 264</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">Dune::VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\">VirtualRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> </div>\n-<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>;</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a> geometry() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> </div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span> </div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\"> 263</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01331.html\">Refinement::BackendRefinement</a> <a class=\"code hl_typedef\" href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\"> 264</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#ab8c922afab5c2fe4e742a4b563ee166a\"> 265</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 2;</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a63f3a850cd52577598572a029592c93e\"> 267</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01323.html#a63f3a850cd52577598572a029592c93e\">nIntervals_</a>;</div>\n <div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> </div>\n-<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keywordtype\">int</span> nVertices(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> </div>\n-<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> <span class=\"keywordtype\">int</span> nElements(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> </div>\n-<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension></a> &instance();</div>\n-<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a>() {}</div>\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> </div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinement::VertexIteratorBack</a> *vBeginBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinement::VertexIteratorBack</a> *vEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinement::ElementIteratorBack</a> *eBeginBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinement::ElementIteratorBack</a> *eEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag) <span class=\"keyword\">const override</span>;</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension> &</div>\n-<div class=\"foldopen\" id=\"foldopen00286\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\"> 286</a></span> <a class=\"code hl_function\" href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::instance</a>()</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> {</div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> <span class=\"keyword\">static</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a> instance_{};</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">return</span> instance_;</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> </div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00294\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\"> 294</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span><a class=\"code hl_function\" href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\"> nVertices</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01227.html#a8922c129d11181e8206f719803931346\">StaticRefinement::nVertices</a>(tag);</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> </div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack</a> *</div>\n-<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span><a class=\"code hl_class\" href=\"a01427.html\"> vBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<dimension>(<a class=\"code hl_function\" href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">StaticRefinement::vBegin</a>(tag));</div>\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> }</div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> </div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#a07310e9597e483f2314467b980796470\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack</a> *</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> vEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<dimension>(<a class=\"code hl_function\" href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">StaticRefinement::vEnd</a>(tag));</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> }</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> </div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00320\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\"> 320</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::nElements</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">StaticRefinement::nElements</a>(tag);</div>\n-<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n-<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack</a> *</div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</a></div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span><a class=\"code hl_class\" href=\"a01427.html\"> eBeginBack</a>(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<0>(<a class=\"code hl_function\" href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">StaticRefinement::eBegin</a>(tag));</div>\n-<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> }</div>\n-<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> </div>\n-<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack</a> *</div>\n-<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::</div>\n-<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> eEndBack(<a class=\"code hl_class\" href=\"a01223.html\">Dune::RefinementIntervals</a> tag)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> SubEntityIteratorBack<0>(<a class=\"code hl_function\" href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">StaticRefinement::eEnd</a>(tag));</div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> }</div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> </div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"comment\">// The iterator backend implementation</span></div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n-<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"comment\">// The iterator backend implementation specialties</span></div>\n-<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension, <span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01435.html\"> 350</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a>;</div>\n-<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> </div>\n-<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"comment\">// The iterator backend implementation specialties for vertices</span></div>\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00355\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01439.html\"> 355</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, dimension></div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::template SubEntityIteratorBack<dimension></div>\n-<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> {};</div>\n-</div>\n-<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> </div>\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> <span class=\"comment\">// The iterator backend implementation specialties for elements</span></div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> </div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"foldopen\" id=\"foldopen00363\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html\"> 363</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, 0></div>\n-<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement</a><dimension, CoordType>::template SubEntityIteratorBack<0></div>\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> {</div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\"> 367</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01427.html\">Dune::VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension></a> <a class=\"code hl_typedef\" href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\">VirtualRefinementImp</a>;</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\"> 368</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> VirtualRefinementImp::template SubEntityIteratorBack<0> <a class=\"code hl_typedef\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Common</a>;</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\"> 369</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01227.html\">VirtualRefinementImp::StaticRefinement</a> <a class=\"code hl_typedef\" href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\">StaticRefinement</a>;</div>\n-<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\"> 370</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\">RefinementBase</a>;</div>\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\"> 371</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> RefinementBase::IndexVector <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a>;</div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> </div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n-<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial<topologyId, CoordType, coerceToId, dimension, 0>::IndexVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00379\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01443.html#a0a1edfbd77c5c5454eda7dfb54c91d77\"> 379</a></span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial<topologyId, CoordType, coerceToId, dimension, 0>::</a></div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span><a class=\"code hl_class\" href=\"a01435.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <a class=\"code hl_typedef\" href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">IndexVector</a> vIndices;</div>\n-<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> vIndices.reserve(StaticRefinement::IndexVector::dimension);</div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> </div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> <span class=\"keyword\">typename</span> <a class=\"code hl_variable\" href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">StaticRefinement::IndexVector</a> sIndices = <span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Common</a> *<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>)->backend.vertexIndices();</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < StaticRefinement::IndexVector::dimension; ++i)</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> vIndices.push_back(sIndices[i]);</div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keywordflow\">return</span> vIndices;</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> }</div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\"> 269</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\">kuhnIndex</a>;</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#ad98d8982efcca48d629defa779389d03\"> 270</a></span> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01323.html#ad98d8982efcca48d629defa779389d03\">backend</a>;</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\"> 271</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\">backendEnd</a>;</div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> </div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00275\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6ea422fdb0ffd1cd410326cb9e0aa16d\"> 275</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span><a class=\"code hl_class\" href=\"a01307.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> backend(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eBegin(nIntervals_)),</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> backendEnd(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eEnd(nIntervals_))</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> {</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> <span class=\"keywordflow\">if</span> (end)</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> kuhnIndex = nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> </div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00287\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a09eec9a9901cd735d68382b9b0e83423\"> 287</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span><a class=\"code hl_class\" href=\"a01307.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> {</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> ++backend;</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> {</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> backend = BackendRefinement::eBegin(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> ++kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> }</div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> </div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00300\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a75300d1090882707e3bc3633c82a1c2c\"> 300</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span><a class=\"code hl_class\" href=\"a01307.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <a class=\"code hl_typedef\" href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">IndexVector</a> indices = backend.vertexIndices();</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> </div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordtype\">int</span> base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> indices += base;</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> <span class=\"keywordflow\">return</span> indices;</div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> </div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00313\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a45aadf03f6a5a2d120109f9083eaa356\"> 313</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span><a class=\"code hl_class\" href=\"a01307.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index();</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> </div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00321\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#acf5ad378f968f9b4899bbc3b40ebfdcc\"> 321</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span><a class=\"code hl_class\" href=\"a01307.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keywordflow\">return</span> global(backend.coords());</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> </div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n+<div class=\"foldopen\" id=\"foldopen00329\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01323.html#a6cfeb5d6f24977ab7a599f7b5ea71d29\"> 329</a></span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span><a class=\"code hl_class\" href=\"a01307.html\"> geometry</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> BackendIterator::Geometry &</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> bgeo = backend.geometry();</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> std::vector<CoordVector> corners(dimension+1);</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> corners[i] = global(bgeo.corner(i));</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Geometry</a>(bgeo.type(), corners);</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> </div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0></a>::</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> CoordVector</div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span><a class=\"code hl_class\" href=\"a01307.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">transformCoordinate</a>(referenceToKuhn(local,</div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> getPermutation<dimension>(kuhnIndex)));</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> }</div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> </div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> <span class=\"comment\">// common</span></div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00354\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html\"> 354</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01311.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01315.html\">Codim</a><codimension>::SubEntityIterator</div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> {</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\"> 359</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\"> 360</a></span> <span class=\"keyword\">typedef</span> SubEntityIterator <a class=\"code hl_typedef\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\"> 362</a></span> <a class=\"code hl_function\" href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\"> 364</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, codimension>::kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">dimension</a>, CoordType, codimension>::backend;</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> </div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span><a class=\"code hl_class\" href=\"a01311.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> : <a class=\"code hl_class\" href=\"a01307.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> {}</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> </div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> <a class=\"code hl_class\" href=\"a01311.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><a class=\"code hl_class\" href=\"a01311.html\"> equals</a>(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> <span class=\"keywordflow\">return</span> kuhnIndex == other.kuhnIndex && backend == other.backend;</div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> }</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> </div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> } <span class=\"comment\">// namespace PyramidTriangulation</span></div>\n </div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n <div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> </div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// The shared iterator backend implementation</span></div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00395\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html\"> 395</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp</a><topologyId, CoordType, coerceToId, dimension>::<a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a></div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> : <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension></div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> {</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\"> 399</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> StaticRefinement::template <a class=\"code hl_struct\" href=\"a01463.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a>;</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\"> 400</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a>;</div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\"> 401</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> VirtualRefinement::template <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack<codimension></a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a>;</div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\"> 402</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">VirtualRefinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">CoordVector</a>;</div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> </div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> &backend);</div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <a class=\"code hl_class\" href=\"a01431.html\">SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &other);</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> </div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> *clone() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> <span class=\"keywordtype\">bool</span> operator==(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &other) <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &operator++();</div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> {</div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"comment\">// ///////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"comment\">// The refinement traits</span></div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId></div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keyword\">struct </span>Traits<</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> topologyId, CoordType, coerceToId, 3,</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> (GeometryTypes::pyramid.id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> (topologyId >> 1) &&</div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> (GeometryTypes::simplex(3).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> (coerceToId >> 1)</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> >::type></div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> {</div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keyword\">typedef</span> PyramidTriangulation::RefinementImp<3, CoordType> Imp;</div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> };</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span><span class=\"preprocessor\">#endif</span></div>\n <div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a79f36212d37a0146fd705fc81ea9a12d\"> 413</a></span> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span>} <span class=\"comment\">// namespace Dune</span></div>\n <div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> </div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension>;</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> backend;</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> </div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00423\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a19f77e48746b89c28e7a34b797c7a960\"> 423</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span><a class=\"code hl_class\" href=\"a01427.html\"> SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">BackendIterator</a> &backend_)</div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> : backend(backend_)</div>\n-<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> </div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType,</div>\n-<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"foldopen\" id=\"foldopen00431\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a37c6e4d560c1d7e63312f28451383a30\"> 431</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span><a class=\"code hl_class\" href=\"a01427.html\"> SubEntityIteratorBack</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &other)</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> : <a class=\"code hl_class\" href=\"a01435.html\">VirtualRefinementImpSubEntityIteratorBackSpecial</a><topologyId, CoordType, coerceToId, dimension, codimension>(other),</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> backend(other.backend)</div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> </div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">SubEntityIteratorBack<codimension>::Base</a> *</div>\n-<div class=\"foldopen\" id=\"foldopen00440\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a7bd8326d395345fa2874ffd5d4e88b51\"> 440</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span><a class=\"code hl_class\" href=\"a01427.html\"> clone</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> <span class=\"keyword\">new</span> <a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a>(*<span class=\"keyword\">this</span>); }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> </div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> <span class=\"keywordtype\">bool</span></div>\n-<div class=\"foldopen\" id=\"foldopen00447\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a4c629e09d75d532df0194b0858505249\"> 447</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span><a class=\"code hl_class\" href=\"a01427.html\"> operator==</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Base</a> &other)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> <span class=\"keywordflow\">try</span> {</div>\n-<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span> <span class=\"keywordflow\">return</span> backend == <span class=\"keyword\">dynamic_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">This</a> &<span class=\"keyword\">></span>(other).backend;</div>\n-<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> }</div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"> 453</span> <span class=\"keywordflow\">catch</span>(<span class=\"keyword\">const</span> std::bad_cast&)</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> {</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span> }</div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"> 457</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> </div>\n-<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">SubEntityIteratorBack<codimension>::Base</a> &</div>\n-<div class=\"foldopen\" id=\"foldopen00462\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a58b300f7e45aa41860d9a0832a60a668\"> 462</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span><a class=\"code hl_class\" href=\"a01427.html\"> operator++</a>()</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> {</div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span> ++backend;</div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">this</span>;</div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00468\" name=\"l00468\"></a><span class=\"lineno\"> 468</span> </div>\n-<div class=\"line\"><a id=\"l00469\" name=\"l00469\"></a><span class=\"lineno\"> 469</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00470\" name=\"l00470\"></a><span class=\"lineno\"> 470</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00471\" name=\"l00471\"></a><span class=\"lineno\"> 471</span> <span class=\"keywordtype\">int</span></div>\n-<div class=\"foldopen\" id=\"foldopen00472\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00472\" name=\"l00472\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#a7f6e6a137177b0094efbba9e6635e492\"> 472</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00473\" name=\"l00473\"></a><span class=\"lineno\"> 473</span><a class=\"code hl_class\" href=\"a01427.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00474\" name=\"l00474\"></a><span class=\"lineno\"> 474</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend.index(); }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00475\" name=\"l00475\"></a><span class=\"lineno\"> 475</span> </div>\n-<div class=\"line\"><a id=\"l00476\" name=\"l00476\"></a><span class=\"lineno\"> 476</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId, <span class=\"keywordtype\">int</span> dimension></div>\n-<div class=\"line\"><a id=\"l00477\" name=\"l00477\"></a><span class=\"lineno\"> 477</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n-<div class=\"line\"><a id=\"l00478\" name=\"l00478\"></a><span class=\"lineno\"> 478</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::template</a> <a class=\"code hl_typedef\" href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">SubEntityIteratorBack<codimension>::CoordVector</a></div>\n-<div class=\"foldopen\" id=\"foldopen00479\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00479\" name=\"l00479\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01431.html#ad89388e1bed00985747776577f8066d6\"> 479</a></span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::SubEntityIteratorBack<codimension>::</a></div>\n-<div class=\"line\"><a id=\"l00480\" name=\"l00480\"></a><span class=\"lineno\"> 480</span><a class=\"code hl_class\" href=\"a01427.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00481\" name=\"l00481\"></a><span class=\"lineno\"> 481</span><span class=\"keyword\"> </span>{ <span class=\"keywordflow\">return</span> backend.coords(); }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00482\" name=\"l00482\"></a><span class=\"lineno\"> 482</span> </div>\n-<div class=\"line\"><a id=\"l00483\" name=\"l00483\"></a><span class=\"lineno\"> 483</span> <span class=\"comment\">// ////////////////////////</span></div>\n-<div class=\"line\"><a id=\"l00484\" name=\"l00484\"></a><span class=\"lineno\"> 484</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00485\" name=\"l00485\"></a><span class=\"lineno\"> 485</span> <span class=\"comment\">// The refinement builder</span></div>\n-<div class=\"line\"><a id=\"l00486\" name=\"l00486\"></a><span class=\"lineno\"> 486</span> <span class=\"comment\">//</span></div>\n-<div class=\"line\"><a id=\"l00487\" name=\"l00487\"></a><span class=\"lineno\"> 487</span> </div>\n-<div class=\"line\"><a id=\"l00488\" name=\"l00488\"></a><span class=\"lineno\"> 488</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00489\" name=\"l00489\"></a><span class=\"lineno\"> 489</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a>;</div>\n-<div class=\"line\"><a id=\"l00490\" name=\"l00490\"></a><span class=\"lineno\"> 490</span> </div>\n-<div class=\"line\"><a id=\"l00501\" name=\"l00501\"></a><span class=\"lineno\"> 501</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"line\"><a id=\"l00502\" name=\"l00502\"></a><span class=\"lineno\"> 502</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n-<div class=\"foldopen\" id=\"foldopen00503\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00503\" name=\"l00503\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\"> 503</a></span> <a class=\"code hl_function\" href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">buildRefinement</a>( </div>\n-<div class=\"line\"><a id=\"l00504\" name=\"l00504\"></a><span class=\"lineno\"> 504</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> geometryType,</div>\n-<div class=\"line\"><a id=\"l00506\" name=\"l00506\"></a><span class=\"lineno\"> 506</span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> coerceTo)</div>\n-<div class=\"line\"><a id=\"l00507\" name=\"l00507\"></a><span class=\"lineno\"> 507</span> {</div>\n-<div class=\"line\"><a id=\"l00508\" name=\"l00508\"></a><span class=\"lineno\"> 508</span> <span class=\"comment\">// Check that the user used valid geometry types</span></div>\n-<div class=\"line\"><a id=\"l00509\" name=\"l00509\"></a><span class=\"lineno\"> 509</span> assert(geometryType.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() == dimension && coerceTo.<a class=\"code hl_function\" href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">dim</a>() == dimension);</div>\n-<div class=\"line\"><a id=\"l00510\" name=\"l00510\"></a><span class=\"lineno\"> 510</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">RefinementBuilder<dimension, CoordType>::build</a>( geometryType.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), coerceTo.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() );</div>\n-<div class=\"line\"><a id=\"l00511\" name=\"l00511\"></a><span class=\"lineno\"> 511</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00512\" name=\"l00512\"></a><span class=\"lineno\"> 512</span> </div>\n-<div class=\"line\"><a id=\"l00513\" name=\"l00513\"></a><span class=\"lineno\"> 513</span> <span class=\"comment\">// In principle the trick with the class is no longer necessary,</span></div>\n-<div class=\"line\"><a id=\"l00514\" name=\"l00514\"></a><span class=\"lineno\"> 514</span> <span class=\"comment\">// but I'm keeping it in here so it will be easier to specialize</span></div>\n-<div class=\"line\"><a id=\"l00515\" name=\"l00515\"></a><span class=\"lineno\"> 515</span> <span class=\"comment\">// buildRefinement when someone implements pyramids and prisms</span></div>\n-<div class=\"line\"><a id=\"l00516\" name=\"l00516\"></a><span class=\"lineno\"> 516</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00517\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00517\" name=\"l00517\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01447.html\"> 517</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a></div>\n-<div class=\"line\"><a id=\"l00518\" name=\"l00518\"></a><span class=\"lineno\"> 518</span> {</div>\n-<div class=\"line\"><a id=\"l00519\" name=\"l00519\"></a><span class=\"lineno\"> 519</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00520\" name=\"l00520\"></a><span class=\"lineno\"> 520</span> <span class=\"keyword\">static</span></div>\n-<div class=\"line\"><a id=\"l00521\" name=\"l00521\"></a><span class=\"lineno\"> 521</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n-<div class=\"foldopen\" id=\"foldopen00522\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00522\" name=\"l00522\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\"> 522</a></span> <a class=\"code hl_function\" href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n-<div class=\"line\"><a id=\"l00523\" name=\"l00523\"></a><span class=\"lineno\"> 523</span> {</div>\n-<div class=\"line\"><a id=\"l00524\" name=\"l00524\"></a><span class=\"lineno\"> 524</span> topologyId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00525\" name=\"l00525\"></a><span class=\"lineno\"> 525</span> coerceToId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00526\" name=\"l00526\"></a><span class=\"lineno\"> 526</span> </div>\n-<div class=\"line\"><a id=\"l00527\" name=\"l00527\"></a><span class=\"lineno\"> 527</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00528\" name=\"l00528\"></a><span class=\"lineno\"> 528</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idCube = GeometryTypes::cube(dimension).id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00529\" name=\"l00529\"></a><span class=\"lineno\"> 529</span> </div>\n-<div class=\"line\"><a id=\"l00530\" name=\"l00530\"></a><span class=\"lineno\"> 530</span> <span class=\"keywordflow\">switch</span>( topologyId )</div>\n-<div class=\"line\"><a id=\"l00531\" name=\"l00531\"></a><span class=\"lineno\"> 531</span> {</div>\n-<div class=\"line\"><a id=\"l00532\" name=\"l00532\"></a><span class=\"lineno\"> 532</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n-<div class=\"line\"><a id=\"l00533\" name=\"l00533\"></a><span class=\"lineno\"> 533</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00534\" name=\"l00534\"></a><span class=\"lineno\"> 534</span> <span class=\"comment\">//switch( coerceTo )</span></div>\n-<div class=\"line\"><a id=\"l00535\" name=\"l00535\"></a><span class=\"lineno\"> 535</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00536\" name=\"l00536\"></a><span class=\"lineno\"> 536</span> {</div>\n-<div class=\"line\"><a id=\"l00537\" name=\"l00537\"></a><span class=\"lineno\"> 537</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n-<div class=\"line\"><a id=\"l00538\" name=\"l00538\"></a><span class=\"lineno\"> 538</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00539\" name=\"l00539\"></a><span class=\"lineno\"> 539</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00540\" name=\"l00540\"></a><span class=\"lineno\"> 540</span> default :</div>\n-<div class=\"line\"><a id=\"l00541\" name=\"l00541\"></a><span class=\"lineno\"> 541</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00542\" name=\"l00542\"></a><span class=\"lineno\"> 542</span> }</div>\n-<div class=\"line\"><a id=\"l00543\" name=\"l00543\"></a><span class=\"lineno\"> 543</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00544\" name=\"l00544\"></a><span class=\"lineno\"> 544</span> </div>\n-<div class=\"line\"><a id=\"l00545\" name=\"l00545\"></a><span class=\"lineno\"> 545</span> <span class=\"comment\">//case GeometryType::cube:</span></div>\n-<div class=\"line\"><a id=\"l00546\" name=\"l00546\"></a><span class=\"lineno\"> 546</span> <span class=\"keywordflow\">case</span> idCube :</div>\n-<div class=\"line\"><a id=\"l00547\" name=\"l00547\"></a><span class=\"lineno\"> 547</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00548\" name=\"l00548\"></a><span class=\"lineno\"> 548</span> {</div>\n-<div class=\"line\"><a id=\"l00549\" name=\"l00549\"></a><span class=\"lineno\"> 549</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00550\" name=\"l00550\"></a><span class=\"lineno\"> 550</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00551\" name=\"l00551\"></a><span class=\"lineno\"> 551</span> <span class=\"keywordflow\">case</span> idCube :</div>\n-<div class=\"line\"><a id=\"l00552\" name=\"l00552\"></a><span class=\"lineno\"> 552</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idCube, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00553\" name=\"l00553\"></a><span class=\"lineno\"> 553</span> default :</div>\n-<div class=\"line\"><a id=\"l00554\" name=\"l00554\"></a><span class=\"lineno\"> 554</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00555\" name=\"l00555\"></a><span class=\"lineno\"> 555</span> }</div>\n-<div class=\"line\"><a id=\"l00556\" name=\"l00556\"></a><span class=\"lineno\"> 556</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00557\" name=\"l00557\"></a><span class=\"lineno\"> 557</span> </div>\n-<div class=\"line\"><a id=\"l00558\" name=\"l00558\"></a><span class=\"lineno\"> 558</span> default :</div>\n-<div class=\"line\"><a id=\"l00559\" name=\"l00559\"></a><span class=\"lineno\"> 559</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00560\" name=\"l00560\"></a><span class=\"lineno\"> 560</span> }</div>\n-<div class=\"line\"><a id=\"l00561\" name=\"l00561\"></a><span class=\"lineno\"> 561</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n-<div class=\"line\"><a id=\"l00562\" name=\"l00562\"></a><span class=\"lineno\"> 562</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n-<div class=\"line\"><a id=\"l00563\" name=\"l00563\"></a><span class=\"lineno\"> 563</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00564\" name=\"l00564\"></a><span class=\"lineno\"> 564</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00565\" name=\"l00565\"></a><span class=\"lineno\"> 565</span> </div>\n-<div class=\"line\"><a id=\"l00566\" name=\"l00566\"></a><span class=\"lineno\"> 566</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00567\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00567\" name=\"l00567\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01451.html\"> 567</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a><1, CoordType></div>\n-<div class=\"line\"><a id=\"l00568\" name=\"l00568\"></a><span class=\"lineno\"> 568</span> {</div>\n-<div class=\"line\"><a id=\"l00569\" name=\"l00569\"></a><span class=\"lineno\"> 569</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t dimension = 1;</div>\n-<div class=\"line\"><a id=\"l00570\" name=\"l00570\"></a><span class=\"lineno\"> 570</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00571\" name=\"l00571\"></a><span class=\"lineno\"> 571</span> <span class=\"keyword\">static</span></div>\n-<div class=\"line\"><a id=\"l00572\" name=\"l00572\"></a><span class=\"lineno\"> 572</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n-<div class=\"foldopen\" id=\"foldopen00573\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00573\" name=\"l00573\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\"> 573</a></span> <a class=\"code hl_function\" href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n-<div class=\"line\"><a id=\"l00574\" name=\"l00574\"></a><span class=\"lineno\"> 574</span> {</div>\n-<div class=\"line\"><a id=\"l00575\" name=\"l00575\"></a><span class=\"lineno\"> 575</span> topologyId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00576\" name=\"l00576\"></a><span class=\"lineno\"> 576</span> coerceToId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00577\" name=\"l00577\"></a><span class=\"lineno\"> 577</span> </div>\n-<div class=\"line\"><a id=\"l00578\" name=\"l00578\"></a><span class=\"lineno\"> 578</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00579\" name=\"l00579\"></a><span class=\"lineno\"> 579</span> </div>\n-<div class=\"line\"><a id=\"l00580\" name=\"l00580\"></a><span class=\"lineno\"> 580</span> <span class=\"keywordflow\">if</span> (topologyId == 0 && coerceToId == 0)</div>\n-<div class=\"line\"><a id=\"l00581\" name=\"l00581\"></a><span class=\"lineno\"> 581</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00582\" name=\"l00582\"></a><span class=\"lineno\"> 582</span> </div>\n-<div class=\"line\"><a id=\"l00583\" name=\"l00583\"></a><span class=\"lineno\"> 583</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n-<div class=\"line\"><a id=\"l00584\" name=\"l00584\"></a><span class=\"lineno\"> 584</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n-<div class=\"line\"><a id=\"l00585\" name=\"l00585\"></a><span class=\"lineno\"> 585</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00586\" name=\"l00586\"></a><span class=\"lineno\"> 586</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00587\" name=\"l00587\"></a><span class=\"lineno\"> 587</span> </div>\n-<div class=\"line\"><a id=\"l00588\" name=\"l00588\"></a><span class=\"lineno\"> 588</span> <span class=\"keyword\">template</span><<span class=\"keyword\">class</span> CoordType></div>\n-<div class=\"foldopen\" id=\"foldopen00589\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00589\" name=\"l00589\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01455.html\"> 589</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01447.html\">RefinementBuilder</a><3, CoordType></div>\n-<div class=\"line\"><a id=\"l00590\" name=\"l00590\"></a><span class=\"lineno\"> 590</span> {</div>\n-<div class=\"line\"><a id=\"l00591\" name=\"l00591\"></a><span class=\"lineno\"> 591</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> std::size_t dimension = 3;</div>\n-<div class=\"line\"><a id=\"l00592\" name=\"l00592\"></a><span class=\"lineno\"> 592</span> <span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00593\" name=\"l00593\"></a><span class=\"lineno\"> 593</span> <span class=\"keyword\">static</span></div>\n-<div class=\"line\"><a id=\"l00594\" name=\"l00594\"></a><span class=\"lineno\"> 594</span> <a class=\"code hl_class\" href=\"a01459.html\">VirtualRefinement<dimension, CoordType></a> &</div>\n-<div class=\"foldopen\" id=\"foldopen00595\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00595\" name=\"l00595\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\"> 595</a></span> <a class=\"code hl_function\" href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\">build</a>(<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keywordtype\">unsigned</span> coerceToId)</div>\n-<div class=\"line\"><a id=\"l00596\" name=\"l00596\"></a><span class=\"lineno\"> 596</span> {</div>\n-<div class=\"line\"><a id=\"l00597\" name=\"l00597\"></a><span class=\"lineno\"> 597</span> topologyId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00598\" name=\"l00598\"></a><span class=\"lineno\"> 598</span> coerceToId &= ~1;</div>\n-<div class=\"line\"><a id=\"l00599\" name=\"l00599\"></a><span class=\"lineno\"> 599</span> </div>\n-<div class=\"line\"><a id=\"l00600\" name=\"l00600\"></a><span class=\"lineno\"> 600</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idSimplex = GeometryTypes::simplex(dimension).id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00601\" name=\"l00601\"></a><span class=\"lineno\"> 601</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idCube = GeometryTypes::cube(dimension).id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00602\" name=\"l00602\"></a><span class=\"lineno\"> 602</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idPrism = GeometryTypes::prism.id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00603\" name=\"l00603\"></a><span class=\"lineno\"> 603</span> <span class=\"keyword\">constexpr</span> <span class=\"keywordtype\">unsigned</span> idPyramid = GeometryTypes::pyramid.id() & ~1;</div>\n-<div class=\"line\"><a id=\"l00604\" name=\"l00604\"></a><span class=\"lineno\"> 604</span> </div>\n-<div class=\"line\"><a id=\"l00605\" name=\"l00605\"></a><span class=\"lineno\"> 605</span> <span class=\"keywordflow\">switch</span>( topologyId )</div>\n-<div class=\"line\"><a id=\"l00606\" name=\"l00606\"></a><span class=\"lineno\"> 606</span> {</div>\n-<div class=\"line\"><a id=\"l00607\" name=\"l00607\"></a><span class=\"lineno\"> 607</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n-<div class=\"line\"><a id=\"l00608\" name=\"l00608\"></a><span class=\"lineno\"> 608</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00609\" name=\"l00609\"></a><span class=\"lineno\"> 609</span> <span class=\"comment\">//switch( coerceTo )</span></div>\n-<div class=\"line\"><a id=\"l00610\" name=\"l00610\"></a><span class=\"lineno\"> 610</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00611\" name=\"l00611\"></a><span class=\"lineno\"> 611</span> {</div>\n-<div class=\"line\"><a id=\"l00612\" name=\"l00612\"></a><span class=\"lineno\"> 612</span> <span class=\"comment\">//case GeometryType::simplex:</span></div>\n-<div class=\"line\"><a id=\"l00613\" name=\"l00613\"></a><span class=\"lineno\"> 613</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00614\" name=\"l00614\"></a><span class=\"lineno\"> 614</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idSimplex, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00615\" name=\"l00615\"></a><span class=\"lineno\"> 615</span> default :</div>\n-<div class=\"line\"><a id=\"l00616\" name=\"l00616\"></a><span class=\"lineno\"> 616</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00617\" name=\"l00617\"></a><span class=\"lineno\"> 617</span> }</div>\n-<div class=\"line\"><a id=\"l00618\" name=\"l00618\"></a><span class=\"lineno\"> 618</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00619\" name=\"l00619\"></a><span class=\"lineno\"> 619</span> </div>\n-<div class=\"line\"><a id=\"l00620\" name=\"l00620\"></a><span class=\"lineno\"> 620</span> <span class=\"comment\">//case GeometryType::cube:</span></div>\n-<div class=\"line\"><a id=\"l00621\" name=\"l00621\"></a><span class=\"lineno\"> 621</span> <span class=\"keywordflow\">case</span> idCube :</div>\n-<div class=\"line\"><a id=\"l00622\" name=\"l00622\"></a><span class=\"lineno\"> 622</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00623\" name=\"l00623\"></a><span class=\"lineno\"> 623</span> {</div>\n-<div class=\"line\"><a id=\"l00624\" name=\"l00624\"></a><span class=\"lineno\"> 624</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00625\" name=\"l00625\"></a><span class=\"lineno\"> 625</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00626\" name=\"l00626\"></a><span class=\"lineno\"> 626</span> <span class=\"keywordflow\">case</span> idCube :</div>\n-<div class=\"line\"><a id=\"l00627\" name=\"l00627\"></a><span class=\"lineno\"> 627</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idCube, CoordType, idCube, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00628\" name=\"l00628\"></a><span class=\"lineno\"> 628</span> default :</div>\n-<div class=\"line\"><a id=\"l00629\" name=\"l00629\"></a><span class=\"lineno\"> 629</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00630\" name=\"l00630\"></a><span class=\"lineno\"> 630</span> }</div>\n-<div class=\"line\"><a id=\"l00631\" name=\"l00631\"></a><span class=\"lineno\"> 631</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00632\" name=\"l00632\"></a><span class=\"lineno\"> 632</span> </div>\n-<div class=\"line\"><a id=\"l00633\" name=\"l00633\"></a><span class=\"lineno\"> 633</span> <span class=\"comment\">//case GeometryType::prism:</span></div>\n-<div class=\"line\"><a id=\"l00634\" name=\"l00634\"></a><span class=\"lineno\"> 634</span> <span class=\"keywordflow\">case</span> idPrism :</div>\n-<div class=\"line\"><a id=\"l00635\" name=\"l00635\"></a><span class=\"lineno\"> 635</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00636\" name=\"l00636\"></a><span class=\"lineno\"> 636</span> {</div>\n-<div class=\"line\"><a id=\"l00637\" name=\"l00637\"></a><span class=\"lineno\"> 637</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00638\" name=\"l00638\"></a><span class=\"lineno\"> 638</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idPrism, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00639\" name=\"l00639\"></a><span class=\"lineno\"> 639</span> default :</div>\n-<div class=\"line\"><a id=\"l00640\" name=\"l00640\"></a><span class=\"lineno\"> 640</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00641\" name=\"l00641\"></a><span class=\"lineno\"> 641</span> }</div>\n-<div class=\"line\"><a id=\"l00642\" name=\"l00642\"></a><span class=\"lineno\"> 642</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00643\" name=\"l00643\"></a><span class=\"lineno\"> 643</span> </div>\n-<div class=\"line\"><a id=\"l00644\" name=\"l00644\"></a><span class=\"lineno\"> 644</span> <span class=\"comment\">//case GeometryType::pyramid:</span></div>\n-<div class=\"line\"><a id=\"l00645\" name=\"l00645\"></a><span class=\"lineno\"> 645</span> <span class=\"keywordflow\">case</span> idPyramid :</div>\n-<div class=\"line\"><a id=\"l00646\" name=\"l00646\"></a><span class=\"lineno\"> 646</span> <span class=\"keywordflow\">switch</span>( coerceToId )</div>\n-<div class=\"line\"><a id=\"l00647\" name=\"l00647\"></a><span class=\"lineno\"> 647</span> {</div>\n-<div class=\"line\"><a id=\"l00648\" name=\"l00648\"></a><span class=\"lineno\"> 648</span> <span class=\"keywordflow\">case</span> idSimplex :</div>\n-<div class=\"line\"><a id=\"l00649\" name=\"l00649\"></a><span class=\"lineno\"> 649</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_class\" href=\"a01427.html\">VirtualRefinementImp< idPyramid, CoordType, idSimplex, dimension>::instance</a>();</div>\n-<div class=\"line\"><a id=\"l00650\" name=\"l00650\"></a><span class=\"lineno\"> 650</span> default :</div>\n-<div class=\"line\"><a id=\"l00651\" name=\"l00651\"></a><span class=\"lineno\"> 651</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00652\" name=\"l00652\"></a><span class=\"lineno\"> 652</span> }</div>\n-<div class=\"line\"><a id=\"l00653\" name=\"l00653\"></a><span class=\"lineno\"> 653</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00654\" name=\"l00654\"></a><span class=\"lineno\"> 654</span> </div>\n-<div class=\"line\"><a id=\"l00655\" name=\"l00655\"></a><span class=\"lineno\"> 655</span> default :</div>\n-<div class=\"line\"><a id=\"l00656\" name=\"l00656\"></a><span class=\"lineno\"> 656</span> <span class=\"keywordflow\">break</span>;</div>\n-<div class=\"line\"><a id=\"l00657\" name=\"l00657\"></a><span class=\"lineno\"> 657</span> }</div>\n-<div class=\"line\"><a id=\"l00658\" name=\"l00658\"></a><span class=\"lineno\"> 658</span> DUNE_THROW( NotImplemented, <span class=\"stringliteral\">"No Refinement<"</span> << topologyId << <span class=\"stringliteral\">", CoordType, "</span></div>\n-<div class=\"line\"><a id=\"l00659\" name=\"l00659\"></a><span class=\"lineno\"> 659</span> << coerceToId << <span class=\"stringliteral\">" >."</span>);</div>\n-<div class=\"line\"><a id=\"l00660\" name=\"l00660\"></a><span class=\"lineno\"> 660</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00661\" name=\"l00661\"></a><span class=\"lineno\"> 661</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00662\" name=\"l00662\"></a><span class=\"lineno\"> 662</span> </div>\n-<div class=\"line\"><a id=\"l00663\" name=\"l00663\"></a><span class=\"lineno\"> 663</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00664\" name=\"l00664\"></a><span class=\"lineno\"> 664</span> </div>\n-<div class=\"line\"><a id=\"l00665\" name=\"l00665\"></a><span class=\"lineno\"> 665</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00176_html\"><div class=\"ttname\"><a href=\"a00176.html\">refinement.hh</a></div><div class=\"ttdoc\">This file simply includes all Refinement implementations so you don't have to do them separately.</div></div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</span></div>\n+<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00233_html\"><div class=\"ttname\"><a href=\"a00233.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n+<div class=\"ttc\" id=\"aa00236_html\"><div class=\"ttname\"><a href=\"a00236.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n+<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa00263_html_a73043181be4688f6cc83f1416cc176c6\"><div class=\"ttname\"><a href=\"a00263.html#a73043181be4688f6cc83f1416cc176c6\">Dune::buildRefinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType geometryType, GeometryType coerceTo)</div><div class=\"ttdoc\">return a reference to the VirtualRefinement according to the parameters</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:503</div></div>\n+<div class=\"ttc\" id=\"aa00273_html_a3c4d43135632c0bc83dca6491c2fd16c\"><div class=\"ttname\"><a href=\"a00273.html#a3c4d43135632c0bc83dca6491c2fd16c\">Dune::RefinementImp::PyramidTriangulation::transformCoordinate</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType, dimension > point)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:51</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n <div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n-<div class=\"ttc\" id=\"aa01223_html\"><div class=\"ttname\"><a href=\"a01223.html\">Dune::RefinementIntervals</a></div><div class=\"ttdoc\">Holds the number of refined intervals per axis needed for virtual and static refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:94</div></div>\n-<div class=\"ttc\" id=\"aa01227_html\"><div class=\"ttname\"><a href=\"a01227.html\">Dune::StaticRefinement</a></div><div class=\"ttdoc\">Wrap each Refinement implementation to get a consistent interface.</div><div class=\"ttdef\"><b>Definition</b> base.cc:141</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a12852b48095c6a9dcb52a9259090fe00\"><div class=\"ttname\"><a href=\"a01227.html#a12852b48095c6a9dcb52a9259090fe00\">Dune::StaticRefinement::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:247</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a269d7e427663d9584b8c1cf21b80b95a\"><div class=\"ttname\"><a href=\"a01227.html#a269d7e427663d9584b8c1cf21b80b95a\">Dune::StaticRefinement::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:237</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a2eca414a7fae0d7774745b81e6b540ac\"><div class=\"ttname\"><a href=\"a01227.html#a2eca414a7fae0d7774745b81e6b540ac\">Dune::StaticRefinement::nElements</a></div><div class=\"ttdeci\">static int nElements(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> base.cc:227</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a8922c129d11181e8206f719803931346\"><div class=\"ttname\"><a href=\"a01227.html#a8922c129d11181e8206f719803931346\">Dune::StaticRefinement::nVertices</a></div><div class=\"ttdeci\">static int nVertices(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> base.cc:197</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_a9b24b410ce9d175a603d21bc2d2bdaa4\"><div class=\"ttname\"><a href=\"a01227.html#a9b24b410ce9d175a603d21bc2d2bdaa4\">Dune::StaticRefinement::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:207</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_ad21cde66bb348bbc1f4d543142145c70\"><div class=\"ttname\"><a href=\"a01227.html#ad21cde66bb348bbc1f4d543142145c70\">Dune::StaticRefinement::IndexVector</a></div><div class=\"ttdeci\">typedef IndexVector</div><div class=\"ttdoc\">The IndexVector of the Refinement.</div><div class=\"ttdef\"><b>Definition</b> base.cc:177</div></div>\n-<div class=\"ttc\" id=\"aa01227_html_afd95b0b6fb8ffdb1e29d09933c491f9f\"><div class=\"ttname\"><a href=\"a01227.html#afd95b0b6fb8ffdb1e29d09933c491f9f\">Dune::StaticRefinement::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(Dune::RefinementIntervals tag)</div><div class=\"ttdoc\">Get a VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> base.cc:217</div></div>\n-<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_a483aa5d1f34e386a76743d505fa01143\"><div class=\"ttname\"><a href=\"a01367.html#a483aa5d1f34e386a76743d505fa01143\">Dune::GeometryType::dim</a></div><div class=\"ttdeci\">constexpr unsigned int dim() const</div><div class=\"ttdoc\">Return dimension of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:360</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n-<div class=\"ttc\" id=\"aa01395_html\"><div class=\"ttname\"><a href=\"a01395.html\">Dune::VirtualRefinementSubEntityIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:72</div></div>\n-<div class=\"ttc\" id=\"aa01403_html_a61f23e4eea23303a6c30fad6cce7185e\"><div class=\"ttname\"><a href=\"a01403.html#a61f23e4eea23303a6c30fad6cce7185e\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:85</div></div>\n-<div class=\"ttc\" id=\"aa01403_html_a837f961aef97f059014cb48aed737ed0\"><div class=\"ttname\"><a href=\"a01403.html#a837f961aef97f059014cb48aed737ed0\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:84</div></div>\n-<div class=\"ttc\" id=\"aa01403_html_ae6f278e1276e23edc6b1e70af75eca9a\"><div class=\"ttname\"><a href=\"a01403.html#ae6f278e1276e23edc6b1e70af75eca9a\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:86</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a03a58dbcd9ed175b8eb0ad4d49f0459d\"><div class=\"ttname\"><a href=\"a01407.html#a03a58dbcd9ed175b8eb0ad4d49f0459d\">Dune::VirtualRefinement::Codim< codimension >::coords</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType >::template Codim< codimension >::SubEntityIterator::CoordVector coords() const</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a0fad85c0700db320f535c832b90bc5d0\"><div class=\"ttname\"><a href=\"a01407.html#a0fad85c0700db320f535c832b90bc5d0\">Dune::VirtualRefinement::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(const This &other)</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a0fc6285a858a0bcbd97615db228f9465\"><div class=\"ttname\"><a href=\"a01407.html#a0fc6285a858a0bcbd97615db228f9465\">Dune::VirtualRefinement::Codim< codimension >::operator=</a></div><div class=\"ttdeci\">This & operator=(const This &other)</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a12bb247b446fb4f79d0c7400a741a2e9\"><div class=\"ttname\"><a href=\"a01407.html#a12bb247b446fb4f79d0c7400a741a2e9\">Dune::VirtualRefinement::Codim< codimension >::index</a></div><div class=\"ttdeci\">int index() const</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a436966e21b9917b96aeba724ccabbc7c\"><div class=\"ttname\"><a href=\"a01407.html#a436966e21b9917b96aeba724ccabbc7c\">Dune::VirtualRefinement::Codim< codimension >::~SubEntityIterator</a></div><div class=\"ttdeci\">~SubEntityIterator()</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a45307131a1b30a23805a38c5e1f089de\"><div class=\"ttname\"><a href=\"a01407.html#a45307131a1b30a23805a38c5e1f089de\">Dune::VirtualRefinement::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(IteratorBack *backend)</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_a65175dfaf73294f2253024d5260f61db\"><div class=\"ttname\"><a href=\"a01407.html#a65175dfaf73294f2253024d5260f61db\">Dune::VirtualRefinement::Codim< codimension >::IteratorBack</a></div><div class=\"ttdeci\">Refinement::template SubEntityIteratorBack< codimension > IteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:109</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_aab5cc15e2fc101812d41d3f4bc97f7f6\"><div class=\"ttname\"><a href=\"a01407.html#aab5cc15e2fc101812d41d3f4bc97f7f6\">Dune::VirtualRefinement::Codim< codimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:110</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_ab694f9a59b8af72a206f6fd43028edbd\"><div class=\"ttname\"><a href=\"a01407.html#ab694f9a59b8af72a206f6fd43028edbd\">Dune::VirtualRefinement::Codim< codimension >::This</a></div><div class=\"ttdeci\">Refinement::template Codim< codimension >::SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:108</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_abe3eb149202760e3ade29748fa9b965e\"><div class=\"ttname\"><a href=\"a01407.html#abe3eb149202760e3ade29748fa9b965e\">Dune::VirtualRefinement::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_ad2dab6a17c2110eb1768d15f266f8238\"><div class=\"ttname\"><a href=\"a01407.html#ad2dab6a17c2110eb1768d15f266f8238\">Dune::VirtualRefinement::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:107</div></div>\n-<div class=\"ttc\" id=\"aa01407_html_af9b428fff2bac338e3a90cc37ff41145\"><div class=\"ttname\"><a href=\"a01407.html#af9b428fff2bac338e3a90cc37ff41145\">Dune::VirtualRefinement::Codim< codimension >::increment</a></div><div class=\"ttdeci\">void increment()</div></div>\n-<div class=\"ttc\" id=\"aa01411_html\"><div class=\"ttname\"><a href=\"a01411.html\">Dune::VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:200</div></div>\n-<div class=\"ttc\" id=\"aa01415_html_a4e7103cc2485d7a42dc017d360d8685a\"><div class=\"ttname\"><a href=\"a01415.html#a4e7103cc2485d7a42dc017d360d8685a\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, dimension >::~VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdeci\">virtual ~VirtualRefinementSubEntityIteratorBackSpecial()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:208</div></div>\n-<div class=\"ttc\" id=\"aa01419_html_a379120681233502a5b38c8d6329ea5a0\"><div class=\"ttname\"><a href=\"a01419.html#a379120681233502a5b38c8d6329ea5a0\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::vertexIndices</a></div><div class=\"ttdeci\">virtual IndexVector vertexIndices() const =0</div></div>\n-<div class=\"ttc\" id=\"aa01419_html_a4b592b86f4d309dc2c005cc19600f5de\"><div class=\"ttname\"><a href=\"a01419.html#a4b592b86f4d309dc2c005cc19600f5de\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:217</div></div>\n-<div class=\"ttc\" id=\"aa01419_html_a677506e9076476d046968beb2675f5ee\"><div class=\"ttname\"><a href=\"a01419.html#a677506e9076476d046968beb2675f5ee\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:218</div></div>\n-<div class=\"ttc\" id=\"aa01419_html_ae46fcb7a9b1fdcd956a57c4dde910337\"><div class=\"ttname\"><a href=\"a01419.html#ae46fcb7a9b1fdcd956a57c4dde910337\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 >::~VirtualRefinementSubEntityIteratorBackSpecial</a></div><div class=\"ttdeci\">virtual ~VirtualRefinementSubEntityIteratorBackSpecial()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:222</div></div>\n-<div class=\"ttc\" id=\"aa01423_html\"><div class=\"ttname\"><a href=\"a01423.html\">Dune::VirtualRefinement::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:231</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_a019bd767100a60a95a8fd187f0ce5314\"><div class=\"ttname\"><a href=\"a01423.html#a019bd767100a60a95a8fd187f0ce5314\">Dune::VirtualRefinement::SubEntityIteratorBack::index</a></div><div class=\"ttdeci\">virtual int index() const =0</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_a02264daad490f7a8cbd5469eb3271b35\"><div class=\"ttname\"><a href=\"a01423.html#a02264daad490f7a8cbd5469eb3271b35\">Dune::VirtualRefinement::SubEntityIteratorBack::This</a></div><div class=\"ttdeci\">Refinement::template SubEntityIteratorBack< codimension > This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:234</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_a38ffce9ca308dbbf07ae3281a35ac4d0\"><div class=\"ttname\"><a href=\"a01423.html#a38ffce9ca308dbbf07ae3281a35ac4d0\">Dune::VirtualRefinement::SubEntityIteratorBack::clone</a></div><div class=\"ttdeci\">virtual This * clone() const =0</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_a3c8ceabd6e46aa63f2bce69c5344be3b\"><div class=\"ttname\"><a href=\"a01423.html#a3c8ceabd6e46aa63f2bce69c5344be3b\">Dune::VirtualRefinement::SubEntityIteratorBack::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:235</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_a710fcec3e4ca4ec26bb1b154edbdc243\"><div class=\"ttname\"><a href=\"a01423.html#a710fcec3e4ca4ec26bb1b154edbdc243\">Dune::VirtualRefinement::SubEntityIteratorBack::Refinement</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:233</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_ac53973435fafdf9881323d0aac97b0ee\"><div class=\"ttname\"><a href=\"a01423.html#ac53973435fafdf9881323d0aac97b0ee\">Dune::VirtualRefinement::SubEntityIteratorBack::operator==</a></div><div class=\"ttdeci\">virtual bool operator==(const This &other) const =0</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_acadf6e07787ce29cf8ed606c9c6b6b69\"><div class=\"ttname\"><a href=\"a01423.html#acadf6e07787ce29cf8ed606c9c6b6b69\">Dune::VirtualRefinement::SubEntityIteratorBack::coords</a></div><div class=\"ttdeci\">virtual CoordVector coords() const =0</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_ad50ced742e5d51c71368e2c82866d635\"><div class=\"ttname\"><a href=\"a01423.html#ad50ced742e5d51c71368e2c82866d635\">Dune::VirtualRefinement::SubEntityIteratorBack::~SubEntityIteratorBack</a></div><div class=\"ttdeci\">virtual ~SubEntityIteratorBack()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:237</div></div>\n-<div class=\"ttc\" id=\"aa01423_html_aee7d21a455c944582cc05610c60ec0d9\"><div class=\"ttname\"><a href=\"a01423.html#aee7d21a455c944582cc05610c60ec0d9\">Dune::VirtualRefinement::SubEntityIteratorBack::operator++</a></div><div class=\"ttdeci\">virtual This & operator++()=0</div></div>\n-<div class=\"ttc\" id=\"aa01427_html\"><div class=\"ttname\"><a href=\"a01427.html\">Dune::VirtualRefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:261</div></div>\n-<div class=\"ttc\" id=\"aa01427_html_a2e8d2d47528c87c6114e78319bc71785\"><div class=\"ttname\"><a href=\"a01427.html#a2e8d2d47528c87c6114e78319bc71785\">Dune::VirtualRefinementImp::nVertices</a></div><div class=\"ttdeci\">int nVertices(Dune::RefinementIntervals tag) const override</div><div class=\"ttdoc\">Get the number of Vertices.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:295</div></div>\n-<div class=\"ttc\" id=\"aa01427_html_a3feba26d593f8738df00e34e87d28459\"><div class=\"ttname\"><a href=\"a01427.html#a3feba26d593f8738df00e34e87d28459\">Dune::VirtualRefinementImp::nElements</a></div><div class=\"ttdeci\">int nElements(Dune::RefinementIntervals tag) const override</div><div class=\"ttdoc\">Get the number of Elements.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:320</div></div>\n-<div class=\"ttc\" id=\"aa01427_html_a5f8db4445cecb39df11e32eedf3802d2\"><div class=\"ttname\"><a href=\"a01427.html#a5f8db4445cecb39df11e32eedf3802d2\">Dune::VirtualRefinementImp::VirtualRefinement</a></div><div class=\"ttdeci\">Dune::VirtualRefinement< dimension, CoordType > VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:264</div></div>\n-<div class=\"ttc\" id=\"aa01427_html_aa79948de433d57541b36cc933e94cdf7\"><div class=\"ttname\"><a href=\"a01427.html#aa79948de433d57541b36cc933e94cdf7\">Dune::VirtualRefinementImp::instance</a></div><div class=\"ttdeci\">static VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > & instance()</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:286</div></div>\n-<div class=\"ttc\" id=\"aa01427_html_ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\"><div class=\"ttname\"><a href=\"a01427.html#ac98d2a6f29bcc3cefb0f66b4e6aa0e7b\">Dune::VirtualRefinementImp::StaticRefinement</a></div><div class=\"ttdeci\">Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension > StaticRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:263</div></div>\n-<div class=\"ttc\" id=\"aa01431_html\"><div class=\"ttname\"><a href=\"a01431.html\">Dune::VirtualRefinementImp::SubEntityIteratorBack</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:397</div></div>\n-<div class=\"ttc\" id=\"aa01431_html_a32c5fa96ddad5b822899233324013194\"><div class=\"ttname\"><a href=\"a01431.html#a32c5fa96ddad5b822899233324013194\">Dune::VirtualRefinementImp::SubEntityIteratorBack::Base</a></div><div class=\"ttdeci\">VirtualRefinement::template SubEntityIteratorBack< codimension > Base</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:401</div></div>\n-<div class=\"ttc\" id=\"aa01431_html_ad89e23cfcae3c0173d94a99873839470\"><div class=\"ttname\"><a href=\"a01431.html#ad89e23cfcae3c0173d94a99873839470\">Dune::VirtualRefinementImp::SubEntityIteratorBack::This</a></div><div class=\"ttdeci\">VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::template SubEntityIteratorBack< codimension > This</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:400</div></div>\n-<div class=\"ttc\" id=\"aa01431_html_ae23101ad72e3e61cecb024b4a8fd93c8\"><div class=\"ttname\"><a href=\"a01431.html#ae23101ad72e3e61cecb024b4a8fd93c8\">Dune::VirtualRefinementImp::SubEntityIteratorBack::BackendIterator</a></div><div class=\"ttdeci\">StaticRefinement::template Codim< codimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:399</div></div>\n-<div class=\"ttc\" id=\"aa01431_html_ae2ac709858cf432870c2e809ff7a83e8\"><div class=\"ttname\"><a href=\"a01431.html#ae2ac709858cf432870c2e809ff7a83e8\">Dune::VirtualRefinementImp::SubEntityIteratorBack::CoordVector</a></div><div class=\"ttdeci\">VirtualRefinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:402</div></div>\n-<div class=\"ttc\" id=\"aa01435_html\"><div class=\"ttname\"><a href=\"a01435.html\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:350</div></div>\n-<div class=\"ttc\" id=\"aa01443_html_a4d131d2a711038a3268dc7ee1d32b2c7\"><div class=\"ttname\"><a href=\"a01443.html#a4d131d2a711038a3268dc7ee1d32b2c7\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::Common</a></div><div class=\"ttdeci\">VirtualRefinementImp::template SubEntityIteratorBack< 0 > Common</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:368</div></div>\n-<div class=\"ttc\" id=\"aa01443_html_a6b417d8cdd4f5de9442d50c80f117181\"><div class=\"ttname\"><a href=\"a01443.html#a6b417d8cdd4f5de9442d50c80f117181\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::IndexVector</a></div><div class=\"ttdeci\">RefinementBase::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:371</div></div>\n-<div class=\"ttc\" id=\"aa01443_html_a752e01cc47fd671b355166b3fec55dbf\"><div class=\"ttname\"><a href=\"a01443.html#a752e01cc47fd671b355166b3fec55dbf\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::RefinementBase</a></div><div class=\"ttdeci\">VirtualRefinement< dimension, CoordType > RefinementBase</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:370</div></div>\n-<div class=\"ttc\" id=\"aa01443_html_ac49e801de12f13cbf670de6232e79b1d\"><div class=\"ttname\"><a href=\"a01443.html#ac49e801de12f13cbf670de6232e79b1d\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::VirtualRefinementImp</a></div><div class=\"ttdeci\">Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > VirtualRefinementImp</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:367</div></div>\n-<div class=\"ttc\" id=\"aa01443_html_ad0ff77017e5cc536c68c13e60f3e059e\"><div class=\"ttname\"><a href=\"a01443.html#ad0ff77017e5cc536c68c13e60f3e059e\">Dune::VirtualRefinementImpSubEntityIteratorBackSpecial< topologyId, CoordType, coerceToId, dimension, 0 >::StaticRefinement</a></div><div class=\"ttdeci\">VirtualRefinementImp::StaticRefinement StaticRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:369</div></div>\n-<div class=\"ttc\" id=\"aa01447_html\"><div class=\"ttname\"><a href=\"a01447.html\">Dune::RefinementBuilder</a></div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:518</div></div>\n-<div class=\"ttc\" id=\"aa01447_html_a0f9c5e631b5add9de81e7c19f3c457e6\"><div class=\"ttname\"><a href=\"a01447.html#a0f9c5e631b5add9de81e7c19f3c457e6\">Dune::RefinementBuilder::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:522</div></div>\n-<div class=\"ttc\" id=\"aa01451_html_a245f3e9bc5f4d6bc4b46bc4328178e42\"><div class=\"ttname\"><a href=\"a01451.html#a245f3e9bc5f4d6bc4b46bc4328178e42\">Dune::RefinementBuilder< 1, CoordType >::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:573</div></div>\n-<div class=\"ttc\" id=\"aa01455_html_a0752aacc5bd2bd6f85f4dbe10a3131f8\"><div class=\"ttname\"><a href=\"a01455.html#a0752aacc5bd2bd6f85f4dbe10a3131f8\">Dune::RefinementBuilder< 3, CoordType >::build</a></div><div class=\"ttdeci\">static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId, unsigned coerceToId)</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:595</div></div>\n-<div class=\"ttc\" id=\"aa01459_html\"><div class=\"ttname\"><a href=\"a01459.html\">Dune::VirtualRefinement</a></div><div class=\"ttdoc\">VirtualRefinement base class.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:283</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a07310e9597e483f2314467b980796470\"><div class=\"ttname\"><a href=\"a01459.html#a07310e9597e483f2314467b980796470\">Dune::VirtualRefinement::VertexIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< dimension > VertexIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:307</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a48a0b20da4d3a262b8aa94999c03ec4c\"><div class=\"ttname\"><a href=\"a01459.html#a48a0b20da4d3a262b8aa94999c03ec4c\">Dune::VirtualRefinement::vBegin</a></div><div class=\"ttdeci\">VertexIterator vBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:38</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a58217a0701cdf7458ab63b09948dcd18\"><div class=\"ttname\"><a href=\"a01459.html#a58217a0701cdf7458ab63b09948dcd18\">Dune::VirtualRefinement::eBegin</a></div><div class=\"ttdeci\">ElementIterator eBegin(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:54</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a76668e0abfac920b12f8d34feca43054\"><div class=\"ttname\"><a href=\"a01459.html#a76668e0abfac920b12f8d34feca43054\">Dune::VirtualRefinement::eEnd</a></div><div class=\"ttdeci\">ElementIterator eEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an ElementIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:62</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a7e14c2a7c4d16a2c1760f6e447246f1c\"><div class=\"ttname\"><a href=\"a01459.html#a7e14c2a7c4d16a2c1760f6e447246f1c\">Dune::VirtualRefinement::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdoc\">The ElementIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:290</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_a842f9ea89c5bc1de43825973ae9ee7f8\"><div class=\"ttname\"><a href=\"a01459.html#a842f9ea89c5bc1de43825973ae9ee7f8\">Dune::VirtualRefinement::vEnd</a></div><div class=\"ttdeci\">VertexIterator vEnd(Dune::RefinementIntervals tag) const</div><div class=\"ttdoc\">Get an VertexIterator.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.cc:46</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ac1bbbac41ae70b73baf8f702419c5d87\"><div class=\"ttname\"><a href=\"a01459.html#ac1bbbac41ae70b73baf8f702419c5d87\">Dune::VirtualRefinement::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdoc\">The CoordVector of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:297</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_ad5eaa227e5deeb688dad02b635829455\"><div class=\"ttname\"><a href=\"a01459.html#ad5eaa227e5deeb688dad02b635829455\">Dune::VirtualRefinement::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdoc\">The VertexIterator of the VirtualRefinement.</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:288</div></div>\n-<div class=\"ttc\" id=\"aa01459_html_af14612af29e934d64e11384e81b414f3\"><div class=\"ttname\"><a href=\"a01459.html#af14612af29e934d64e11384e81b414f3\">Dune::VirtualRefinement::ElementIteratorBack</a></div><div class=\"ttdeci\">SubEntityIteratorBack< 0 > ElementIteratorBack</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:308</div></div>\n-<div class=\"ttc\" id=\"aa01463_html\"><div class=\"ttname\"><a href=\"a01463.html\">Dune::VirtualRefinement::Codim</a></div><div class=\"ttdoc\">codim database of VirtualRefinement</div><div class=\"ttdef\"><b>Definition</b> virtualrefinement.hh:367</div></div>\n+<div class=\"ttc\" id=\"aa01151_html\"><div class=\"ttname\"><a href=\"a01151.html\">Dune::MultiLinearGeometry</a></div><div class=\"ttdoc\">generic geometry implementation based on corner coordinates</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:181</div></div>\n+<div class=\"ttc\" id=\"aa01307_html\"><div class=\"ttname\"><a href=\"a01307.html\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:43</div></div>\n+<div class=\"ttc\" id=\"aa01311_html\"><div class=\"ttname\"><a href=\"a01311.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp</a></div><div class=\"ttdoc\">Implementation of the refinement of a pyramid into simplices.</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:68</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a00a994a2b5116b5ab33bfeaaee7361b4\"><div class=\"ttname\"><a href=\"a01311.html#a00a994a2b5116b5ab33bfeaaee7361b4\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:77</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a09b4cc66964e826d3735bf14afc16739\"><div class=\"ttname\"><a href=\"a01311.html#a09b4cc66964e826d3735bf14afc16739\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:109</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a0d4c920b2b2a0aef2b34c25188d15595\"><div class=\"ttname\"><a href=\"a01311.html#a0d4c920b2b2a0aef2b34c25188d15595\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:133</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a1f7d550c4de3da34aa425ecb9c1cd0e2\"><div class=\"ttname\"><a href=\"a01311.html#a1f7d550c4de3da34aa425ecb9c1cd0e2\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:72</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a344e29ae4188a3246c8a97f765b30aa0\"><div class=\"ttname\"><a href=\"a01311.html#a344e29ae4188a3246c8a97f765b30aa0\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:76</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a46c4d058c16aeca2091996bd5e84f8bb\"><div class=\"ttname\"><a href=\"a01311.html#a46c4d058c16aeca2091996bd5e84f8bb\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:78</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a4b3583c0fa29aaeeb518ddeb22df6232\"><div class=\"ttname\"><a href=\"a01311.html#a4b3583c0fa29aaeeb518ddeb22df6232\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:70</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a5cc6a37d8a3f69e0d58994b6363b2ea5\"><div class=\"ttname\"><a href=\"a01311.html#a5cc6a37d8a3f69e0d58994b6363b2ea5\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:141</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_a7d82b834ffb732b0f8d39d3228caebd7\"><div class=\"ttname\"><a href=\"a01311.html#a7d82b834ffb732b0f8d39d3228caebd7\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:149</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_ac8d2adc09f152cbb4a062ebbbfd4382e\"><div class=\"ttname\"><a href=\"a01311.html#ac8d2adc09f152cbb4a062ebbbfd4382e\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:79</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_acfb07ddc9a7fc2901120e05a5d87a8f7\"><div class=\"ttname\"><a href=\"a01311.html#acfb07ddc9a7fc2901120e05a5d87a8f7\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:117</div></div>\n+<div class=\"ttc\" id=\"aa01311_html_ae796c83df11658833765b6bd3b2f348d\"><div class=\"ttname\"><a href=\"a01311.html#ae796c83df11658833765b6bd3b2f348d\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:125</div></div>\n+<div class=\"ttc\" id=\"aa01315_html\"><div class=\"ttname\"><a href=\"a01315.html\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:101</div></div>\n+<div class=\"ttc\" id=\"aa01315_html_a3d00c79f82d7d046ba2c349be9680647\"><div class=\"ttname\"><a href=\"a01315.html#a3d00c79f82d7d046ba2c349be9680647\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:103</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_a41f91d0f169ee3d321f54f83c7646c32\"><div class=\"ttname\"><a href=\"a01319.html#a41f91d0f169ee3d321f54f83c7646c32\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:164</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_a496cb033938611e528813a0e5332984d\"><div class=\"ttname\"><a href=\"a01319.html#a496cb033938611e528813a0e5332984d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:166</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_a89abd492b0117164555202003e024b85\"><div class=\"ttname\"><a href=\"a01319.html#a89abd492b0117164555202003e024b85\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:178</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_aa8b9a72d4680e462df383079340cacc2\"><div class=\"ttname\"><a href=\"a01319.html#aa8b9a72d4680e462df383079340cacc2\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:185</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_aae7c0557e4b027054d63198784a7d322\"><div class=\"ttname\"><a href=\"a01319.html#aae7c0557e4b027054d63198784a7d322\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< dimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:179</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_ae312554d46fdc51e1abbf4c40f552d0d\"><div class=\"ttname\"><a href=\"a01319.html#ae312554d46fdc51e1abbf4c40f552d0d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:184</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_af82f8488319ff408e735cc78470a26b8\"><div class=\"ttname\"><a href=\"a01319.html#af82f8488319ff408e735cc78470a26b8\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:165</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_afd0a7ee38054517b83f6b3ba59c7a0cd\"><div class=\"ttname\"><a href=\"a01319.html#afd0a7ee38054517b83f6b3ba59c7a0cd\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:186</div></div>\n+<div class=\"ttc\" id=\"aa01319_html_afed7468a6289d9942692c502b24042fb\"><div class=\"ttname\"><a href=\"a01319.html#afed7468a6289d9942692c502b24042fb\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:182</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a3921ab3a1b4f6481eb5a38d52a0e495d\"><div class=\"ttname\"><a href=\"a01323.html#a3921ab3a1b4f6481eb5a38d52a0e495d\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:271</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a4ba8e83d13f8f4601e51d9bb993e787c\"><div class=\"ttname\"><a href=\"a01323.html#a4ba8e83d13f8f4601e51d9bb993e787c\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:246</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a63f3a850cd52577598572a029592c93e\"><div class=\"ttname\"><a href=\"a01323.html#a63f3a850cd52577598572a029592c93e\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:267</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a64ae4d50e0907cf0fa7d75ec34146066\"><div class=\"ttname\"><a href=\"a01323.html#a64ae4d50e0907cf0fa7d75ec34146066\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:247</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a6ce8f2832a1ca33fee47981bcb53b958\"><div class=\"ttname\"><a href=\"a01323.html#a6ce8f2832a1ca33fee47981bcb53b958\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:245</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_a74ad50c02ec0f88c3d3d375aa6066055\"><div class=\"ttname\"><a href=\"a01323.html#a74ad50c02ec0f88c3d3d375aa6066055\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:264</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_acc94ac070703227aeab4d6ad152f8ff1\"><div class=\"ttname\"><a href=\"a01323.html#acc94ac070703227aeab4d6ad152f8ff1\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:269</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_ad98d8982efcca48d629defa779389d03\"><div class=\"ttname\"><a href=\"a01323.html#ad98d8982efcca48d629defa779389d03\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:270</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_aeb75d564fd4d6cab1a690293a6e2eaab\"><div class=\"ttname\"><a href=\"a01323.html#aeb75d564fd4d6cab1a690293a6e2eaab\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:244</div></div>\n+<div class=\"ttc\" id=\"aa01323_html_af5663da34ab27394f7a0de99d6d4fffd\"><div class=\"ttname\"><a href=\"a01323.html#af5663da34ab27394f7a0de99d6d4fffd\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:263</div></div>\n+<div class=\"ttc\" id=\"aa01327_html_a1e751835a5d370ed4f8e27235240d1d9\"><div class=\"ttname\"><a href=\"a01327.html#a1e751835a5d370ed4f8e27235240d1d9\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n+<div class=\"ttc\" id=\"aa01327_html_a46163a51d8cc59117342dae398a698e0\"><div class=\"ttname\"><a href=\"a01327.html#a46163a51d8cc59117342dae398a698e0\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:360</div></div>\n+<div class=\"ttc\" id=\"aa01327_html_a8c4cf4f164376a2e99b4286d9d0379bf\"><div class=\"ttname\"><a href=\"a01327.html#a8c4cf4f164376a2e99b4286d9d0379bf\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n+<div class=\"ttc\" id=\"aa01327_html_a9c8796e7b916331cf33db50bc736eb89\"><div class=\"ttname\"><a href=\"a01327.html#a9c8796e7b916331cf33db50bc736eb89\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> pyramidtriangulation.cc:359</div></div>\n+<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,1002 +1,606 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-virtualrefinement.cc\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+pyramidtriangulation.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5\n-6#ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n-_\b7#define DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n-8\n-14#include <cassert>\n-15#include <typeinfo>\n+5#ifndef DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n+_\b6#define DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n+7\n+8#include <dune/common/fvector.hh>\n+9#include <dune/common/typetraits.hh>\n+10\n+11#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+12#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+13\n+14#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+15#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n 16\n-17#include <dune/common/exceptions.hh>\n-18#include <dune/common/fvector.hh>\n-19#include <dune/common/iteratorfacades.hh>\n-20\n-21#include \"_\bt_\by_\bp_\be_\b._\bh_\bh\"\n-22#include \"_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\"\n-23\n-24namespace _\bD_\bu_\bn_\be\n-25{\n-26 // //////////////////////////////////////////\n-27 //\n-28 // The virtual base class and its iterators\n+17namespace _\bD_\bu_\bn_\be\n+18{\n+19 namespace RefinementImp\n+20 {\n+_\b2_\b6 namespace PyramidTriangulation\n+27 {\n+28 // ////////////\n 29 //\n-30\n+30 // Utilities\n 31 //\n-32 // Refinement\n-33 //\n-34\n-35 template<int dimension, class CoordType>\n-36 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b3_\b7 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-38_\b _\bv_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-39 {\n-40 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(vBeginBack(tag));\n-41 }\n-42\n-43 template<int dimension, class CoordType>\n-44 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b4_\b5 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-46_\b _\bv_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-47 {\n-48 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(vEndBack(tag));\n-49 }\n-50\n-51 template<int dimension, class CoordType>\n-52 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b5_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-54_\b _\be_\bB_\be_\bg_\bi_\bn(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-55 {\n-56 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(eBeginBack(tag));\n-57 }\n-58\n-59 template<int dimension, class CoordType>\n-60 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\b6_\b1 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n-62_\b _\be_\bE_\bn_\bd(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-63 {\n-64 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(eEndBack(tag));\n-65 }\n-66\n-67 //\n-68 // The iterators\n-69 //\n-70\n-71 template<int dimension, class CoordType, int codimension>\n-_\b7_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+32\n+33 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn;\n+34 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn;\n+35\n+36 // ////////////////////////////////////\n+37 //\n+38 // Refine a pyramid with simplices\n+39 //\n+40\n+41 // forward declaration of the iterator base\n+42 template<int dimension, class CoordType, int codimension>\n+_\b4_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+44\n+45 /*\n+46 * The permutations 0 and 1 of the Kuhn-decomposition of a cube into\n+simplices form a pyramid.\n+47 * The resulting pyramid is not oriented the same as the reference pyramid\n+and so the Kuhn-coordinates\n+48 * have to be transformed using the method below.\n+49 */\n+50 template<int dimension, class CoordType> FieldVector<CoordType, dimension>\n+_\b5_\b1 _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be( FieldVector<CoordType, dimension> point)\n+52 {\n+53 FieldVector<CoordType, dimension> transform;\n+54 transform[0]=1-point[0];\n+55 transform[1]=1-point[1];\n+56 transform[2]=point[2];\n+57 return transform;\n+58 }\n+59\n+66 template<int dimension_, class CoordType>\n+_\b6_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+68 {\n+69 public:\n+_\b7_\b0 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n+71\n+_\b7_\b2 typedef CoordType _\bc_\bt_\by_\bp_\be;\n 73\n-74 // The iterator for vertices\n-75 template<int dimension, class CoordType>\n-_\b7_\b6 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n-dimension>\n-77 {};\n-78\n-79 // The iterator for elements\n-80 template<int dimension, class CoordType>\n-_\b8_\b1 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n-82 {\n-83 public:\n-_\b8_\b4 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b8_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bC_\bo_\bm_\bm_\bo_\bn;\n-_\b8_\b6 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-87\n-88 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-89 };\n-90\n-91 template<int dimension, class CoordType>\n-92 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b9_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n-94_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-95 {\n-96 return static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn *>(this)->backend->vertexIndices();\n-97 }\n-98\n-99 // The iterator common stuff\n-100 template<int dimension, class CoordType>\n-101 template<int codimension>\n-_\b1_\b0_\b2 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n-SubEntityIterator\n-103 : public ForwardIteratorFacade<typename VirtualRefinement<dimension,\n-CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n-104 public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n-codimension>\n-105 {\n-106 public:\n-_\b1_\b0_\b7 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b1_\b0_\b8 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-_\bT_\bh_\bi_\bs;\n-_\b1_\b0_\b9 typedef typename Refinement::template _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n-_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n-_\b1_\b1_\b0 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-111\n-_\b1_\b1_\b2 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *backend);\n-_\b1_\b1_\b3 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(const _\bT_\bh_\bi_\bs &other);\n-_\b1_\b1_\b4 _\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br();\n-115\n-_\b1_\b1_\b6 _\bT_\bh_\bi_\bs &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(const _\bT_\bh_\bi_\bs &other);\n-117\n-_\b1_\b1_\b8 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n-_\b1_\b1_\b9 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt();\n-120\n-_\b1_\b2_\b1 int _\bi_\bn_\bd_\be_\bx() const;\n-122\n-123 // If you simply use an unqualified CoordVector here g++-4.2 chokes\n-124 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be\n-_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br::\n-_\b1_\b2_\b5 CoordVector _\bc_\bo_\bo_\br_\bd_\bs() const;\n-126 private:\n-127 friend class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension,\n-CoordType, codimension>;\n-128 _\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *backend;\n-129 };\n-130\n-131#ifndef DOXYGEN\n-132 template<int dimension, class CoordType>\n-133 template<int codimension>\n-134 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-135_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(IteratorBack *backend_)\n-136 : backend(backend_)\n-137 {}\n-138\n-139 template<int dimension, class CoordType>\n-140 template<int codimension>\n-141 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n-142_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(const This &other)\n-143 : backend(other.backend->clone())\n-144 {}\n+74 template<int codimension>\n+75 struct _\bC_\bo_\bd_\bi_\bm;\n+_\b7_\b6 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b7_\b7 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b7_\b8 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b7_\b9 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+80\n+81 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n+82 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+83 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n+84\n+85 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n+86 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+_\b8_\b7 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n+88\n+89 private:\n+90 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, 0>;\n+91 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n+92\n+93 typedef _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+94\n+95 constexpr static int nKuhnSimplices = 2;\n+96 };\n+97\n+98 template<int dimension, class CoordType>\n+99 template<int codimension>\n+_\b1_\b0_\b0 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n+101 {\n+102 class SubEntityIterator;\n+_\b1_\b0_\b3 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n+codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+104 };\n+105\n+106 template<int dimension, class CoordType>\n+107 int\n+_\b1_\b0_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+109_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n+110 {\n+111 return BackendRefinement::nVertices(nIntervals) * nKuhnSimplices;\n+112 }\n+113\n+114 template<int dimension, class CoordType>\n+115 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b1_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+117_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+118 {\n+119 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+120 }\n+121\n+122 template<int dimension, class CoordType>\n+123 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+125_\b _\bv_\bE_\bn_\bd(int nIntervals)\n+126 {\n+127 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n+128 }\n+129\n+130 template<int dimension, class CoordType>\n+131 int\n+_\b1_\b3_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+133_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n+134 {\n+135 return BackendRefinement::nElements(nIntervals) * nKuhnSimplices;\n+136 }\n+137\n+138 template<int dimension, class CoordType>\n+139 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b4_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+141_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+142 {\n+143 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+144 }\n 145\n 146 template<int dimension, class CoordType>\n-147 template<int codimension>\n-148 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-149 ~SubEntityIterator()\n+147 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b4_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+149_\b _\be_\bE_\bn_\bd(int nIntervals)\n 150 {\n-151 delete backend;\n+151 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n 152 }\n 153\n-154 template<int dimension, class CoordType>\n-155 template<int codimension>\n-156 typename VirtualRefinement<dimension, CoordType>::template\n-Codim<codimension>::SubEntityIterator &\n-157 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-158 operator=(const This &other)\n-159 {\n-160 delete backend;\n-161 backend = other.backend->clone();\n-162 }\n-163\n-164 template<int dimension, class CoordType>\n-165 template<int codimension>\n-166 bool\n-167 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-168 equals(const This &other) const\n-169 { return *backend == *(other.backend); }\n-170\n-171 template<int dimension, class CoordType>\n-172 template<int codimension>\n-173 void\n-174 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-175 increment()\n-176 {\n-177 ++*backend;\n-178 }\n-179\n-180 template<int dimension, class CoordType>\n-181 template<int codimension>\n-182 int\n-183 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-184 index() const\n-185 { return backend->index(); }\n-186\n-187 template<int dimension, class CoordType>\n-188 template<int codimension>\n-189 typename VirtualRefinement<dimension, CoordType>::template\n-Codim<codimension>::SubEntityIterator::CoordVector\n-190 VirtualRefinement<dimension, CoordType>::Codim<codimension>::\n-SubEntityIterator::\n-191 coords() const\n-192 { return backend->coords(); }\n-193#endif // DOXYGEN\n-194\n-195 //\n-196 // The iterator backend\n-197 //\n-198\n-199 template<int dimension, class CoordType, int codimension>\n-_\b2_\b0_\b0 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-201\n-202 // The iterator backend for vertices\n-203 template<int dimension, class CoordType>\n-_\b2_\b0_\b4 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n-dimension>\n-205 {\n-206 public:\n-207\n-_\b2_\b0_\b8 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl()\n-209 {}\n-210 };\n-211\n-212 // The iterator backend for elements\n+154 // //////////////\n+155 //\n+156 // The iterator\n+157 //\n+158\n+159 // vertices\n+160 template<int dimension, class CoordType>\n+_\b1_\b6_\b1 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n+162 {\n+163 public:\n+_\b1_\b6_\b4 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b6_\b5 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b1_\b6_\b6 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+167\n+168 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+169\n+170 void increment();\n+171\n+172 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+173\n+174 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n+175\n+176 int index() const;\n+177 protected:\n+_\b1_\b7_\b8 typedef typename Refinement::BackendRefinement _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b7_\b9 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b1_\b8_\b0 constexpr static int nKuhnSimplices = 2;\n+181\n+_\b1_\b8_\b2 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n+183\n+_\b1_\b8_\b4 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n+_\b1_\b8_\b5 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n+_\b1_\b8_\b6 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n+187 };\n+188\n+189 template<int dimension, class CoordType>\n+_\b1_\b9_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+191_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+192 : nIntervals_(nIntervals), kuhnIndex(0),\n+193 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vBegin(nIntervals_)),\n+194 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vEnd(nIntervals_))\n+195 {\n+196 if (end)\n+197 kuhnIndex = nKuhnSimplices;\n+198 }\n+199\n+200 template<int dimension, class CoordType>\n+201 void\n+_\b2_\b0_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+203_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+204 {\n+205 ++backend;\n+206 if(backend == backendEnd)\n+207 {\n+208 backend = BackendRefinement::vBegin(nIntervals_);\n+209 ++kuhnIndex;\n+210 }\n+211 }\n+212\n 213 template<int dimension, class CoordType>\n-_\b2_\b1_\b4 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n-0>\n-215 {\n-216 public:\n-_\b2_\b1_\b7 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b1_\b8 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-219\n-_\b2_\b2_\b0 virtual _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const = 0;\n+214 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b2_\b1_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+216_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+217 {\n+218 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n+219 getPermutation<dimension>(kuhnIndex)));\n+220 }\n 221\n-_\b2_\b2_\b2 virtual _\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl()\n-223 {}\n-224 };\n-225\n-226 // The iterator backend common stuff\n-227 template<int dimension, class CoordType>\n-228 template<int codimension>\n-_\b2_\b2_\b9 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-230 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension,\n-CoordType, codimension>\n-231 {\n-232 public:\n-_\b2_\b3_\b3 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b3_\b4 typedef typename Refinement::template _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n-_\bT_\bh_\bi_\bs;\n-_\b2_\b3_\b5 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-236\n-_\b2_\b3_\b7 virtual _\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk() {}\n+222 template<int dimension, class CoordType>\n+223 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b2_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n+const\n+225 {\n+226 std::vector<CoordVector> corners(1);\n+227 corners[0] = referenceToKuhn(backend.coords(), getPermutation<dimension>\n+(kuhnIndex));\n+228 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n+229 }\n+230\n+231 template<int dimension, class CoordType>\n+232 int\n+_\b2_\b3_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+234_\b _\bi_\bn_\bd_\be_\bx() const\n+235 {\n+236 return kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index\n+();\n+237 }\n 238\n-_\b2_\b3_\b9 virtual _\bT_\bh_\bi_\bs *_\bc_\bl_\bo_\bn_\be() const = 0;\n-240\n-_\b2_\b4_\b1 virtual bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bT_\bh_\bi_\bs &other) const = 0;\n-_\b2_\b4_\b2 virtual _\bT_\bh_\bi_\bs &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+() = 0;\n-243\n-_\b2_\b4_\b4 virtual int _\bi_\bn_\bd_\be_\bx() const = 0;\n-_\b2_\b4_\b5 virtual _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bc_\bo_\bo_\br_\bd_\bs() const = 0;\n-246 };\n-247\n-248 // /////////////////////////////////////////////////\n-249 //\n-250 // The derived classes and their iterator backends\n-251 //\n+239 // elements\n+240 template<int dimension, class CoordType>\n+_\b2_\b4_\b1 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n+242 {\n+243 public:\n+_\b2_\b4_\b4 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b4_\b5 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+_\b2_\b4_\b6 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b2_\b4_\b7 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+248\n+249 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+250\n+251 void increment();\n 252\n-253 //\n-254 // The refinement implementation\n-255 //\n+253 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+254 int index() const;\n+255 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n 256\n-257 template<unsigned topologyId, class CoordType,\n-258 unsigned coerceToId, int dimension>\n-_\b2_\b5_\b9 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-260 : public _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>\n-261 {\n-262 public:\n-_\b2_\b6_\b3 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b2_\b6_\b4 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-265\n-266 template<int codimension>\n-267 class _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk;\n+257 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry() const;\n+258\n+259 private:\n+260 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n+261\n+262 protected:\n+_\b2_\b6_\b3 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b6_\b4 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b2_\b6_\b5 constexpr static int nKuhnSimplices = 2;\n+266\n+_\b2_\b6_\b7 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n 268\n-269 int nVertices(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-270\n-271 int nElements(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-272\n-273 static _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>\n-&instance();\n-274 private:\n-275 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp() {}\n-276\n-277 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *vBeginBack(_\bD_\bu_\bn_\be_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-278 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *vEndBack(_\bD_\bu_\bn_\be_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-279 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *eBeginBack(_\bD_\bu_\bn_\be_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-280 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *eEndBack(_\bD_\bu_\bn_\be_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const override;\n-281 };\n-282\n-283 template<unsigned topologyId, class CoordType,\n-284 unsigned coerceToId, int dimension>\n-285 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension> &\n-_\b2_\b8_\b6 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be()\n-287 {\n-288 static _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp instance_{};\n-289 return instance_;\n-290 }\n-291\n-292 template<unsigned topologyId, class CoordType,\n-293 unsigned coerceToId, int dimension>\n-_\b2_\b9_\b4 int _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-295_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-296 {\n-297 return _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(tag);\n-298 }\n-299\n-300 template<unsigned topologyId, class CoordType,\n-301 unsigned coerceToId, int dimension>\n-302 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n-303 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-304_\b _\bv_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-305 {\n-306 return new SubEntityIteratorBack<dimension>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn(tag));\n-307 }\n-308\n-309 template<unsigned topologyId, class CoordType,\n-310 unsigned coerceToId, int dimension>\n-311 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n-312 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::\n-313 vEndBack(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-314 {\n-315 return new SubEntityIteratorBack<dimension>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd(tag));\n-316 }\n-317\n-318 template<unsigned topologyId, class CoordType,\n-319 unsigned coerceToId, int dimension>\n-_\b3_\b2_\b0 int _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-321 {\n-322 return _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(tag);\n-323 }\n-324\n-325 template<unsigned topologyId, class CoordType,\n-326 unsigned coerceToId, int dimension>\n-327 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n-328 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-329_\b _\be_\bB_\be_\bg_\bi_\bn_\bB_\ba_\bc_\bk(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-330 {\n-331 return new SubEntityIteratorBack<0>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn(tag));\n-332 }\n-333\n-334 template<unsigned topologyId, class CoordType,\n-335 unsigned coerceToId, int dimension>\n-336 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk *\n-337 VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::\n-338 eEndBack(_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs tag) const\n-339 {\n-340 return new SubEntityIteratorBack<0>(_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd(tag));\n-341 }\n-342\n-343 //\n-344 // The iterator backend implementation\n-345 //\n-346\n-347 // The iterator backend implementation specialties\n-348 template<unsigned topologyId, class CoordType,\n-349 unsigned coerceToId, int dimension, int codimension>\n-_\b3_\b5_\b0 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n-351\n-352 // The iterator backend implementation specialties for vertices\n-353 template<unsigned topologyId, class CoordType,\n-354 unsigned coerceToId, int dimension>\n-_\b3_\b5_\b5 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n-CoordType, coerceToId, dimension, dimension>\n-356 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::template\n-SubEntityIteratorBack<dimension>\n-357 {};\n-358\n-359 // The iterator backend implementation specialties for elements\n-360\n-361 template<unsigned topologyId, class CoordType,\n-362 unsigned coerceToId, int dimension>\n-_\b3_\b6_\b3 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n-CoordType, coerceToId, dimension, 0>\n-364 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt<dimension, CoordType>::template\n-SubEntityIteratorBack<0>\n-365 {\n-366 public:\n-_\b3_\b6_\b7 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp;\n-_\b3_\b6_\b8 typedef typename VirtualRefinementImp::template SubEntityIteratorBack<0>\n-_\bC_\bo_\bm_\bm_\bo_\bn;\n-_\b3_\b6_\b9 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n-_\b3_\b7_\b0 typedef _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\ba_\bs_\be;\n-_\b3_\b7_\b1 typedef typename RefinementBase::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n-372\n-373 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n-374 };\n-375\n-376 template<unsigned topologyId, class CoordType,\n-377 unsigned coerceToId, int dimension>\n-378 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,\n-_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-_\b3_\b7_\b9 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b>_\b:_\b:\n-380_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n-381 {\n-382 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vIndices;\n-383 vIndices.reserve(StaticRefinement::IndexVector::dimension);\n-384\n-385 typename _\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br sIndices = static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn\n-*>(this)->backend.vertexIndices();\n-386 for(int i = 0; i < StaticRefinement::IndexVector::dimension; ++i)\n-387 vIndices.push_back(sIndices[i]);\n-388 return vIndices;\n-389 }\n+_\b2_\b6_\b9 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n+_\b2_\b7_\b0 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n+_\b2_\b7_\b1 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n+272 };\n+273\n+274 template<int dimension, class CoordType>\n+_\b2_\b7_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+276_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+277 : nIntervals_(nIntervals), kuhnIndex(0),\n+278 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eBegin(nIntervals_)),\n+279 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eEnd(nIntervals_))\n+280 {\n+281 if (end)\n+282 kuhnIndex = nKuhnSimplices;\n+283 }\n+284\n+285 template<int dimension, class CoordType>\n+286 void\n+_\b2_\b8_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+288_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+289 {\n+290 ++backend;\n+291 if (backend == backendEnd)\n+292 {\n+293 backend = BackendRefinement::eBegin(nIntervals_);\n+294 ++kuhnIndex;\n+295 }\n+296 }\n+297\n+298 template<int dimension, class CoordType>\n+299 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+_\b3_\b0_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+301_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+302 {\n+303 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices = backend.vertexIndices();\n+304\n+305 int base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);\n+306 indices += base;\n+307\n+308 return indices;\n+309 }\n+310\n+311 template<int dimension, class CoordType>\n+312 int\n+_\b3_\b1_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+314_\b _\bi_\bn_\bd_\be_\bx() const\n+315 {\n+316 return kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index\n+();\n+317 }\n+318\n+319 template<int dimension, class CoordType>\n+320 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b3_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+322_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+323 {\n+324 return global(backend.coords());\n+325 }\n+326\n+327 template<int dimension, class CoordType>\n+328 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b3_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+330_\b _\bg_\be_\bo_\bm_\be_\bt_\br_\by() const\n+331 {\n+332 const typename BackendIterator::Geometry &\n+333 bgeo = backend.geometry();\n+334 std::vector<CoordVector> corners(dimension+1);\n+335 for(int i = 0; i <= dimension; ++i)\n+336 corners[i] = global(bgeo.corner(i));\n+337\n+338 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(bgeo.type(), corners);\n+339 }\n+340\n+341 template<int dimension, class CoordType>\n+342 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>::\n+343 CoordVector\n+344 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+345_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const\n+346 {\n+347 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(local,\n+348 getPermutation<dimension>(kuhnIndex)));\n+349 }\n+350\n+351 // common\n+352 template<int dimension, class CoordType>\n+353 template<int codimension>\n+_\b3_\b5_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n+SubEntityIterator\n+355 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n+CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n+356 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n+357 {\n+358 public:\n+_\b3_\b5_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b3_\b6_\b0 typedef SubEntityIterator _\bT_\bh_\bi_\bs;\n+361\n+_\b3_\b6_\b2 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n+363\n+_\b3_\b6_\b4 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n+365 protected:\n+366 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n+kuhnIndex;\n+367 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n+backend;\n+368 };\n+369\n+370#ifndef DOXYGEN\n+371 template<int dimension, class CoordType>\n+372 template<int codimension>\n+373 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+374_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n+375 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n+end)\n+376 {}\n+377\n+378 template<int dimension, class CoordType>\n+379 template<int codimension>\n+380 bool\n+381 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+382_\b _\be_\bq_\bu_\ba_\bl_\bs(const This &other) const\n+383 {\n+384 return kuhnIndex == other.kuhnIndex && backend == other.backend;\n+385 }\n+386#endif\n+387\n+388 } // namespace PyramidTriangulation\n+389 } // namespace RefinementImp\n 390\n-391 // The shared iterator backend implementation\n-392 template<unsigned topologyId, class CoordType,\n-393 unsigned coerceToId, int dimension>\n-394 template<int codimension>\n-_\b3_\b9_\b5 class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<topologyId, CoordType, coerceToId, dimension>::\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-396 : public _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n-CoordType, coerceToId, dimension, codimension>\n-397 {\n-398 public:\n-_\b3_\b9_\b9 typedef typename StaticRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n-_\b4_\b0_\b0 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bT_\bh_\bi_\bs;\n-_\b4_\b0_\b1 typedef typename VirtualRefinement::template\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b> _\bB_\ba_\bs_\be;\n-_\b4_\b0_\b2 typedef typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n-403\n-404 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br &backend);\n-405 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bT_\bh_\bi_\bs &other);\n-406\n-407 _\bB_\ba_\bs_\be *clone() const;\n-408\n-409 bool operator==(const _\bB_\ba_\bs_\be &other) const;\n-410 _\bB_\ba_\bs_\be &operator++();\n+391 namespace RefinementImp\n+392 {\n+393 // ///////////////////////\n+394 //\n+395 // The refinement traits\n+396 //\n+397#ifndef DOXYGEN\n+398 template<unsigned topologyId, class CoordType, unsigned coerceToId>\n+399 struct Traits<\n+400 topologyId, CoordType, coerceToId, 3,\n+401 typename _\bs_\bt_\bd::enable_if<\n+402 (GeometryTypes::pyramid.id() >> 1) ==\n+403 (topologyId >> 1) &&\n+404 (GeometryTypes::simplex(3).id() >> 1) ==\n+405 (coerceToId >> 1)\n+406 >::type>\n+407 {\n+408 typedef PyramidTriangulation::RefinementImp<3, CoordType> Imp;\n+409 };\n+410#endif\n 411\n-412 int index() const;\n-_\b4_\b1_\b3 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+412 } // namespace RefinementImp\n+413} // namespace Dune\n 414\n-415 private:\n-416 friend class _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId,\n-CoordType, coerceToId, dimension, codimension>;\n-417 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br backend;\n-418 };\n-419\n-420 template<unsigned topologyId, class CoordType,\n-421 unsigned coerceToId, int dimension>\n-422 template<int codimension>\n-_\b4_\b2_\b3 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-424_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br &backend_)\n-425 : backend(backend_)\n-426 {}\n-427\n-428 template<unsigned topologyId, class CoordType,\n-429 unsigned coerceToId, int dimension>\n-430 template<int codimension>\n-_\b4_\b3_\b1 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-432_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk(const _\bT_\bh_\bi_\bs &other)\n-433 : _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl<topologyId, CoordType,\n-coerceToId, dimension, codimension>(other),\n-434 backend(other.backend)\n-435 {}\n-436\n-437 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n-dimension>\n-438 template<int codimension>\n-439 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bB_\ba_\bs_\be *\n-_\b4_\b4_\b0 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-441_\b _\bc_\bl_\bo_\bn_\be() const\n-442 { return new _\bT_\bh_\bi_\bs(*this); }\n-443\n-444 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n-dimension>\n-445 template<int codimension>\n-446 bool\n-_\b4_\b4_\b7 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-448_\b _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bB_\ba_\bs_\be &other) const\n-449 {\n-450 try {\n-451 return backend == dynamic_cast<const _\bT_\bh_\bi_\bs &>(other).backend;\n-452 }\n-453 catch(const std::bad_cast&)\n-454 {\n-455 return false;\n-456 }\n-457 }\n-458\n-459 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n-dimension>\n-460 template<int codimension>\n-461 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bB_\ba_\bs_\be &\n-_\b4_\b6_\b2 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-463_\b _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+()\n-464 {\n-465 ++backend;\n-466 return *this;\n-467 }\n-468\n-469 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n-dimension>\n-470 template<int codimension>\n-471 int\n-_\b4_\b7_\b2 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-473_\b _\bi_\bn_\bd_\be_\bx() const\n-474 { return backend.index(); }\n-475\n-476 template<unsigned topologyId, class CoordType, unsigned coerceToId, int\n-dimension>\n-477 template<int codimension>\n-478 typename _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bt_\be_\bm_\bp_\bl_\ba_\bt_\be _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-_\b4_\b7_\b9 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-480_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n-481 { return backend.coords(); }\n-482\n-483 // ////////////////////////\n-484 //\n-485 // The refinement builder\n-486 //\n-487\n-488 template<int dimension, class CoordType>\n-489 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br;\n-490\n-501 template<int dimension, class CoordType>\n-502 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n-_\b5_\b0_\b3 _\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt(\n-504 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be geometryType,\n-506 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be coerceTo)\n-507 {\n-508 // Check that the user used valid geometry types\n-509 assert(geometryType._\bd_\bi_\bm() == dimension && coerceTo._\bd_\bi_\bm() == dimension);\n-510 return _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd( geometryType._\bi_\bd(),\n-coerceTo._\bi_\bd() );\n-511 }\n-512\n-513 // In principle the trick with the class is no longer necessary,\n-514 // but I'm keeping it in here so it will be easier to specialize\n-515 // buildRefinement when someone implements pyramids and prisms\n-516 template<int dimension, class CoordType>\n-_\b5_\b1_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br\n-518 {\n-519 public:\n-520 static\n-521 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n-_\b5_\b2_\b2 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n-523 {\n-524 topologyId &= ~1;\n-525 coerceToId &= ~1;\n-526\n-527 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n-528 constexpr unsigned idCube = GeometryTypes::cube(dimension).id() & ~1;\n-529\n-530 switch( topologyId )\n-531 {\n-532 //case GeometryType::simplex:\n-533 case idSimplex :\n-534 //switch( coerceTo )\n-535 switch( coerceToId )\n-536 {\n-537 //case GeometryType::simplex:\n-538 case idSimplex :\n-539 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-540 default :\n-541 break;\n-542 }\n-543 break;\n-544\n-545 //case GeometryType::cube:\n-546 case idCube :\n-547 switch( coerceToId )\n-548 {\n-549 case idSimplex :\n-550 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-551 case idCube :\n-552 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-553 default :\n-554 break;\n-555 }\n-556 break;\n-557\n-558 default :\n-559 break;\n-560 }\n-561 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n-\"\n-562 << coerceToId << \" >.\");\n-563 }\n-564 };\n-565\n-566 template<class CoordType>\n-_\b5_\b6_\b7 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br<1, CoordType>\n-568 {\n-569 static const std::size_t dimension = 1;\n-570 public:\n-571 static\n-572 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n-_\b5_\b7_\b3 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n-574 {\n-575 topologyId &= ~1;\n-576 coerceToId &= ~1;\n-577\n-578 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n-579\n-580 if (topologyId == 0 && coerceToId == 0)\n-581 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-582\n-583 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n-\"\n-584 << coerceToId << \" >.\");\n-585 }\n-586 };\n-587\n-588 template<class CoordType>\n-_\b5_\b8_\b9 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br<3, CoordType>\n-590 {\n-591 static const std::size_t dimension = 3;\n-592 public:\n-593 static\n-594 _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> &\n-_\b5_\b9_\b5 _\bb_\bu_\bi_\bl_\bd(unsigned topologyId, unsigned coerceToId)\n-596 {\n-597 topologyId &= ~1;\n-598 coerceToId &= ~1;\n-599\n-600 constexpr unsigned idSimplex = GeometryTypes::simplex(dimension).id() & ~1;\n-601 constexpr unsigned idCube = GeometryTypes::cube(dimension).id() & ~1;\n-602 constexpr unsigned idPrism = GeometryTypes::prism.id() & ~1;\n-603 constexpr unsigned idPyramid = GeometryTypes::pyramid.id() & ~1;\n-604\n-605 switch( topologyId )\n-606 {\n-607 //case GeometryType::simplex:\n-608 case idSimplex :\n-609 //switch( coerceTo )\n-610 switch( coerceToId )\n-611 {\n-612 //case GeometryType::simplex:\n-613 case idSimplex :\n-614 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-615 default :\n-616 break;\n-617 }\n-618 break;\n-619\n-620 //case GeometryType::cube:\n-621 case idCube :\n-622 switch( coerceToId )\n-623 {\n-624 case idSimplex :\n-625 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-626 case idCube :\n-627 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bC_\bu_\bb_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-628 default :\n-629 break;\n-630 }\n-631 break;\n-632\n-633 //case GeometryType::prism:\n-634 case idPrism :\n-635 switch( coerceToId )\n-636 {\n-637 case idSimplex :\n-638 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bP_\br_\bi_\bs_\bm_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-639 default :\n-640 break;\n-641 }\n-642 break;\n-643\n-644 //case GeometryType::pyramid:\n-645 case idPyramid :\n-646 switch( coerceToId )\n-647 {\n-648 case idSimplex :\n-649 return _\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bi_\bd_\bP_\by_\br_\ba_\bm_\bi_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bi_\bd_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n-_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be();\n-650 default :\n-651 break;\n-652 }\n-653 break;\n-654\n-655 default :\n-656 break;\n-657 }\n-658 DUNE_THROW( NotImplemented, \"No Refinement<\" << topologyId << \", CoordType,\n-\"\n-659 << coerceToId << \" >.\");\n-660 }\n-661 };\n-662\n-663} // namespace Dune\n-664\n-665#endif // DUNE_GEOMETRY_VIRTUALREFINEMENT_CC\n+415#endif // DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b._\bh_\bh\n-This file simply includes all Refinement implementations so you don't have to\n-do them separately.\n+_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n+This file contains the Refinement implementation for simplices (triangles,\n+tetrahedrons....\n+_\bb_\ba_\bs_\be_\b._\bc_\bc\n+This file contains the parts independent of a particular Refinement\n+implementation.\n+_\bs_\bt_\bd\n+STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bb_\bu_\bi_\bl_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > & buildRefinement(GeometryType\n-geometryType, GeometryType coerceTo)\n-return a reference to the VirtualRefinement according to the parameters\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:503\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType,\n+dimension > point)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:51\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n+FieldVector< int, n > getPermutation(int m)\n+Calculate permutation from it's index.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n+FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n+dimension > point, const FieldVector< int, dimension > &kuhn)\n+Map from the reference simplex to some Kuhn simplex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n _\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n Static tag representing a codimension.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs\n-Holds the number of refined intervals per axis needed for virtual and static\n-refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:94\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Wrap each Refinement implementation to get a consistent interface.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:141\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n-static ElementIterator eEnd(Dune::RefinementIntervals tag)\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:247\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-static ElementIterator eBegin(Dune::RefinementIntervals tag)\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:237\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static int nElements(Dune::RefinementIntervals tag)\n-Get the number of Elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:227\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-static int nVertices(Dune::RefinementIntervals tag)\n-Get the number of Vertices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:197\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-static VertexIterator vBegin(Dune::RefinementIntervals tag)\n-Get a VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:207\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-typedef IndexVector\n-The IndexVector of the Refinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:177\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n-static VertexIterator vEnd(Dune::RefinementIntervals tag)\n-Get a VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn base.cc:217\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-Unique label for each type of entities that can occur in DUNE grids.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bd_\bi_\bm\n-constexpr unsigned int dim() const\n-Return dimension of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:360\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n-constexpr unsigned int id() const\n-Return the topology id of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n-_\bC_\bo_\bm_\bm_\bo_\bn\n-Refinement::template Codim< 0 >::SubEntityIterator Common\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:85\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n-_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:84\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:\n-_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:86\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bs\n-VirtualRefinement< dimension, CoordType >::template Codim< codimension >::\n-SubEntityIterator::CoordVector coords() const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(const This &other)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n-This & operator=(const This &other)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-int index() const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-~SubEntityIterator()\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-SubEntityIterator(IteratorBack *backend)\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-Refinement::template SubEntityIteratorBack< codimension > IteratorBack\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:109\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+generic geometry implementation based on corner coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:181\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:43\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+Implementation of the refinement of a pyramid into simplices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:68\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:77\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static int nVertices(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:109\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static int nElements(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:133\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n+CoordType ctype\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:76\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:78\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:70\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:141\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:149\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< int, dimension+1 > IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:79\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:117\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:125\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:101\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension >\n+Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:103\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:164\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< dimension >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:166\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Refinement::BackendRefinement BackendRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:178\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n+BackendIterator backend\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:185\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+BackendRefinement::template Codim< dimension >::SubEntityIterator\n+BackendIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:179\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n+int kuhnIndex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:184\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:110\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n-Refinement::template Codim< codimension >::SubEntityIterator This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:165\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n+const BackendIterator backendEnd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:186\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n+int nIntervals_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:182\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n+const BackendIterator backendEnd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:271\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:246\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n+int nIntervals_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:267\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< 0 >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:247\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:245\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:264\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n+int kuhnIndex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:269\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n+BackendIterator backend\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:270\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:244\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Refinement::BackendRefinement BackendRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:263\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+_\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n bool equals(const This &other) const\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:107\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n-void increment()\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:200\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-virtual ~VirtualRefinementSubEntityIteratorBackSpecial()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:208\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n-_\b>_\b:_\b:_\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs\n-virtual IndexVector vertexIndices() const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+_\b>_\b:_\b:_\bT_\bh_\bi_\bs\n+SubEntityIterator This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:360\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(int nIntervals, bool end=false)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\by_\br_\ba_\bm_\bi_\bd_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:217\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n-_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:218\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0\n-_\b>_\b:_\b:_\b~_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-virtual ~VirtualRefinementSubEntityIteratorBackSpecial()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:222\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:231\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bi_\bn_\bd_\be_\bx\n-virtual int index() const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bT_\bh_\bi_\bs\n-Refinement::template SubEntityIteratorBack< codimension > This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:234\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bc_\bl_\bo_\bn_\be\n-virtual This * clone() const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-Refinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:235\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement< dimension, CoordType > Refinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:233\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n-virtual bool operator==(const This &other) const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bs\n-virtual CoordVector coords() const =0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\b~_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-virtual ~SubEntityIteratorBack()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:237\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b+_\b+\n-virtual This & operator++()=0\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:261\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n-int nVertices(Dune::RefinementIntervals tag) const override\n-Get the number of Vertices.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:295\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-int nElements(Dune::RefinementIntervals tag) const override\n-Get the number of Elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:320\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Dune::VirtualRefinement< dimension, CoordType > VirtualRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:264\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n-static VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension > &\n-instance()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:286\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-Dune::StaticRefinement< topologyId, CoordType, coerceToId, dimension >\n-StaticRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:263\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:397\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bB_\ba_\bs_\be\n-VirtualRefinement::template SubEntityIteratorBack< codimension > Base\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:401\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bT_\bh_\bi_\bs\n-VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >::template\n-SubEntityIteratorBack< codimension > This\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:400\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-StaticRefinement::template Codim< codimension >::SubEntityIterator\n-BackendIterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:399\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-VirtualRefinement::CoordVector CoordVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:402\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:350\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n-VirtualRefinementImp::template SubEntityIteratorBack< 0 > Common\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:368\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n-RefinementBase::IndexVector IndexVector\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:371\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\ba_\bs_\be\n-VirtualRefinement< dimension, CoordType > RefinementBase\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:370\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n-Dune::VirtualRefinementImp< topologyId, CoordType, coerceToId, dimension >\n-VirtualRefinementImp\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:367\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bt_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bI_\bd_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,\n-_\bc_\bo_\be_\br_\bc_\be_\bT_\bo_\bI_\bd_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\b0_\b _\b>_\b:_\b:_\bS_\bt_\ba_\bt_\bi_\bc_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinementImp::StaticRefinement StaticRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:369\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:518\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n-static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n-unsigned coerceToId)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:522\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b1_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n-static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n-unsigned coerceToId)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:573\n-_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bB_\bu_\bi_\bl_\bd_\be_\br_\b<_\b _\b3_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bb_\bu_\bi_\bl_\bd\n-static VirtualRefinement< dimension, CoordType > & build(unsigned topologyId,\n-unsigned coerceToId)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:595\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n-VirtualRefinement base class.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:283\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-SubEntityIteratorBack< dimension > VertexIteratorBack\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:307\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n-VertexIterator vBegin(Dune::RefinementIntervals tag) const\n-Get an VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:38\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n-ElementIterator eBegin(Dune::RefinementIntervals tag) const\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:54\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\be_\bE_\bn_\bd\n-ElementIterator eEnd(Dune::RefinementIntervals tag) const\n-Get an ElementIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:62\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< 0 >::SubEntityIterator ElementIterator\n-The ElementIterator of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:290\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bv_\bE_\bn_\bd\n-VertexIterator vEnd(Dune::RefinementIntervals tag) const\n-Get an VertexIterator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.cc:46\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n-FieldVector< CoordType, dimension > CoordVector\n-The CoordVector of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:297\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n-Codim< dimension >::SubEntityIterator VertexIterator\n-The VertexIterator of the VirtualRefinement.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:288\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bB_\ba_\bc_\bk\n-SubEntityIteratorBack< 0 > ElementIteratorBack\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:308\n-_\bD_\bu_\bn_\be_\b:_\b:_\bV_\bi_\br_\bt_\bu_\ba_\bl_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n-codim database of VirtualRefinement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn virtualrefinement.hh:367\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn pyramidtriangulation.cc:359\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00242.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00242.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: topologyfactory.hh File Reference</title>\n+<title>dune-geometry: hcube.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,49 +65,88 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">topologyfactory.hh File Reference</div></div>\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">hcube.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n+\n+<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). \n+<a href=\"#details\">More...</a></p>\n <div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <array></code><br />\n-<code>#include <map></code><br />\n-<code>#include <memory></code><br />\n-<code>#include <type_traits></code><br />\n-<code>#include <vector></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/typeindex.hh</a>></code><br />\n+<code>#include <dune/common/fvector.hh></code><br />\n+<code>#include <dune/common/iteratorfacades.hh></code><br />\n+<code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00194_source.html\">dune/geometry/axisalignedcubegeometry.hh</a>></code><br />\n+<code>#include "<a class=\"el\" href=\"a00236_source.html\">base.cc</a>"</code><br />\n </div>\n <p><a href=\"a00242_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01355.html\">Dune::TopologyFactory< Traits ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Provide a factory over the generic topologies. <a href=\"a01355.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01235.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\"><a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes <a href=\"a01235.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01239.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01243.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, codimension ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">SubEntityIterator base class for hypercube refinement. <a href=\"a01243.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01359.html\">Dune::TopologySingletonFactory< Factory ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A wrapper for a <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> providing singleton storage. Same usage as <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> but with empty release method an internal storage. <a href=\"a01359.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01247.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01251.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01255.html\">Dune::RefinementImp::HCube::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00270\" id=\"r_a00270\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00270.html\">Dune::RefinementImp::HCube</a></td></tr>\n+<tr class=\"memdesc:a00270\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\" title=\"Cube element in any nonnegative dimension.\">GeometryType::cube</a>). <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:a2be7a03e64dedaaa1cf5c7c8e2a9cf60\" id=\"r_a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00242.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</a></td></tr>\n+<tr class=\"separator:a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). </p>\n+<p>See <a class=\"el\" href=\"a00257.html\">Refinement implementation for hypercubes</a>. </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"a2be7a03e64dedaaa1cf5c7c8e2a9cf60\" name=\"a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,31 +1,60 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-topologyfactory.hh File Reference\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n+hcube.cc File Reference\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes\n+(quadrilaterals, hexahedrons, etc.). _\bM_\bo_\br_\be_\b._\b._\b.\n #include <cassert>\n-#include <array>\n-#include <map>\n-#include <memory>\n-#include <type_traits>\n-#include <vector>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n+#include <dune/common/fvector.hh>\n+#include <dune/common/iteratorfacades.hh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n+#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bT_\br_\ba_\bi_\bt_\bs_\b _\b>\n-\u00a0 Provide a factory over the generic topologies. _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b<_\b _\bF_\ba_\bc_\bt_\bo_\br_\by_\b _\b>\n- A wrapper for a _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by providing singleton storage. Same\n-\u00a0 usage as _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by but with empty release method an internal\n- storage. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n+ _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0 SubEntityIterator base class for hypercube refinement. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:\n+ _\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be\n+\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n+ hypercubes (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be).\n+\u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bH_\bC_\bU_\bB_\bE_\b__\bC_\bC\n+\u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for hypercubes\n+(quadrilaterals, hexahedrons, etc.).\n+See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bh_\by_\bp_\be_\br_\bc_\bu_\bb_\be_\bs.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_H\bHC\bCU\bUB\bBE\bE_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00242_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00242_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: topologyfactory.hh Source File</title>\n+<title>dune-geometry: hcube.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,198 +70,478 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">topologyfactory.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">hcube.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00242.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00242.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span> </div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <array></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <map></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <memory></span></div>\n-<div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span><span class=\"preprocessor\">#include <type_traits></span></div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <vector></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span> </div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/typeindex.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span> </div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span>{</div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span> </div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Traits></div>\n-<div class=\"foldopen\" id=\"foldopen00041\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html\"> 41</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01355.html\">TopologyFactory</a></div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> {</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"comment\">// extract types from Traits class</span></div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\"> 44</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\">dimension</a> = Traits::dimension;</div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\"> 45</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Key <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a>;</div>\n-<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\"> 46</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Object <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a>;</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\"> 47</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Traits::Factory <a class=\"code hl_typedef\" href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\">Factory</a>;</div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span><span class=\"preprocessor\">#include <cassert></span></div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> </div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span><span class=\"preprocessor\">#include <dune/common/iteratorfacades.hh></span></div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span> </div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00194.html\">dune/geometry/axisalignedcubegeometry.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00050\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\"> 50</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> {</div>\n-<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> <span class=\"keywordflow\">return</span> Impl::toGeometryTypeIdConstant<dimension>(gt, [&](<span class=\"keyword\">auto</span> <span class=\"keywordtype\">id</span>) {</div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keywordflow\">return</span> create<decltype(id)::value>(key);</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> });</div>\n-<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n-<div class=\"foldopen\" id=\"foldopen00058\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\"> 58</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"> 59</span> {</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> <span class=\"keywordflow\">return</span> Factory::template createObject< geometryId >( key );</div>\n-<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"> 61</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> </div>\n-<div class=\"line\"><a id=\"l00064\" name=\"l00064\"></a><span class=\"lineno\"> 64</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n-<div class=\"foldopen\" id=\"foldopen00065\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\"> 65</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<a class=\"code hl_function\" href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> {</div>\n-<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> <span class=\"keywordflow\">return</span> Factory::template createObject< Topology >( key );</div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\"> 71</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\">release</a>( <a class=\"code hl_typedef\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a> *<span class=\"keywordtype\">object</span> ) { <span class=\"keyword\">delete</span> object; }</div>\n-<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> </div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> Factory></div>\n-<div class=\"foldopen\" id=\"foldopen00081\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html\"> 81</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01359.html\">TopologySingletonFactory</a></div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> {</div>\n-<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\"> 83</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a> = Factory::dimension;</div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\"> 84</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Factory::Key <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a>;</div>\n-<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> Factory::Object <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a>;</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"> 86</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00088\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\"> 88</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *<a class=\"code hl_function\" href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> {</div>\n-<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> assert( gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>() < numTopologies );</div>\n-<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> <span class=\"keywordflow\">return</span> instance().getObject( gt, key );</div>\n-<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n-<div class=\"foldopen\" id=\"foldopen00095\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\"> 95</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> -> std::enable_if_t< static_cast<GeometryType>(geometryId).dim() == <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a>, <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> * ></div>\n-<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> {</div>\n-<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keywordflow\">return</span> instance().template getObject< geometryId >( key );</div>\n-<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> </div>\n-<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n-<div class=\"foldopen\" id=\"foldopen00103\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\"> 103</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\">create</a> ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> -> std::enable_if_t< Topology::dimension == dimension, Object * ></div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> {</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keywordflow\">return</span> instance().template getObject< Topology >( key );</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00110\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\"> 110</a></span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\">release</a> ( <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *<span class=\"keywordtype\">object</span> )</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n-<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> <span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">struct </span>ObjectDeleter</div>\n-<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> {</div>\n-<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordtype\">void</span> operator() ( <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *ptr )<span class=\"keyword\"> const </span>{ Factory::release( ptr ); }</div>\n-<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> };</div>\n-<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n-<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keyword\">static</span> TopologySingletonFactory &instance ()</div>\n-<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> {</div>\n-<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> <span class=\"keyword\">static</span> TopologySingletonFactory instance;</div>\n-<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keywordflow\">return</span> instance;</div>\n-<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> }</div>\n-<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> </div>\n-<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> numTopologies = (1 << <a class=\"code hl_variable\" href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">dimension</a>);</div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">typedef</span> std::array< std::unique_ptr< Object, ObjectDeleter >, numTopologies > Array;</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">typedef</span> std::map< Key, Array > Storage;</div>\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> </div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> TopologySingletonFactory () = <span class=\"keywordflow\">default</span>;</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> </div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> std::unique_ptr< Object, ObjectDeleter > &find ( <span class=\"keyword\">const</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> topologyId, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> {</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> <span class=\"keywordflow\">return</span> storage_[ key ][ topologyId ];</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> }</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> </div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01367.html\">Dune::GeometryType</a> &gt, <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> {</div>\n-<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( gt.<a class=\"code hl_function\" href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">id</a>(), key );</div>\n-<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n-<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordtype\">object</span>.reset( Factory::create( gt, key ) );</div>\n-<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n-<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> }</div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> </div>\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">template</span>< GeometryType::Id geometryId ></div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> {</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> <span class=\"keyword\">static</span> <span class=\"keyword\">constexpr</span> GeometryType geometry = geometryId;</div>\n-<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( geometry.id(), key );</div>\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keywordtype\">object</span>.reset( Factory::template create< geometry >( key ) );</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n-<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keyword\">template</span>< <span class=\"keyword\">class</span> Topology ></div>\n-<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> <a class=\"code hl_typedef\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a> *getObject ( <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a> &key )</div>\n-<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> {</div>\n-<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">auto</span> &<span class=\"keywordtype\">object</span> = find( Topology::id, key );</div>\n-<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"keywordflow\">if</span>( !<span class=\"keywordtype\">object</span> )</div>\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"keywordtype\">object</span>.reset( Factory::template create< Topology >( key ) );</div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keywordflow\">return</span> <span class=\"keywordtype\">object</span>.get();</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> }</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> </div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> Storage storage_;</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> };</div>\n-</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> </div>\n-<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span>}</div>\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> </div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// #ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH</span></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n-<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">typeindex.hh</a></div><div class=\"ttdoc\">Helper classes to provide indices for geometrytypes for use in a vector.</div></div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00236.html\">base.cc</a>"</span> <span class=\"comment\">// for RefinementTraits</span></div>\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"> 50</span> </div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span>{</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> {</div>\n+<div class=\"foldopen\" id=\"foldopen00061\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00061\" name=\"l00061\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00270.html\"> 61</a></span> <span class=\"keyword\">namespace </span>HCube</div>\n+<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"> 62</span> {</div>\n+<div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00073\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html\"> 73</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a></div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> {</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\"> 77</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a> = dimension_;</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"> 78</span> <span class=\"comment\">//- Know yourself</span></div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\"> 79</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01239.html\">Codim</a>;</div>\n+<div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\"> 83</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01239.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\"> 84</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\"> 85</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01239.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\"> 86</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, (1<<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>)> <a class=\"code hl_typedef\" href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">nVertices</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">vBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">vEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> </div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">unsigned</span> <a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">nElements</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">eBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">eEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> </div>\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"> 97</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00099\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01239.html\"> 99</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01239.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"> 100</span> {</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\"> 102</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> </div>\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> <span class=\"keywordtype\">unsigned</span></div>\n+<div class=\"foldopen\" id=\"foldopen00107\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\"> 107</a></span> <a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span><a class=\"code hl_function\" href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\"> nVertices</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> <span class=\"comment\">// return (nIntervals + 1)^dim</span></div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals+1u, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(dimension));</div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"> 113</span> </div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00116\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\"> 116</a></span> <a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span><a class=\"code hl_function\" href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\"> vBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> {</div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>(0,nIntervals);</div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"> 121</span> </div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00124\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\"> 124</a></span> <a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span><a class=\"code hl_function\" href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\"> vEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> {</div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">VertexIterator</a>(nVertices(nIntervals),nIntervals);</div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> </div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> <span class=\"keywordtype\">unsigned</span></div>\n+<div class=\"foldopen\" id=\"foldopen00132\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\"> 132</a></span> <a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span><a class=\"code hl_function\" href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\"> nElements</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> {</div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">static_assert</span>(dimension >= 0,</div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"stringliteral\">"Negative dimension given, what the heck is that supposed to mean?"</span>);</div>\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"> 137</span> <span class=\"comment\">// return nIntervals^dim</span></div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span> <span class=\"keywordflow\">return</span> Dune::power(nIntervals, <span class=\"keyword\">static_cast<</span><span class=\"keywordtype\">unsigned</span><span class=\"keyword\">></span>(dimension));</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> </div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00143\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\"> 143</a></span> <a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span><a class=\"code hl_function\" href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\"> eBegin</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> {</div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>(0,nIntervals);</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> </div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00151\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\"> 151</a></span> <a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span><a class=\"code hl_function\" href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\"> eEnd</a>(<span class=\"keywordtype\">unsigned</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> {</div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">ElementIterator</a>(nElements(nIntervals),nIntervals);</div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> </div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"> 158</span> <span class=\"comment\">// The iterators</span></div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> </div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span><span class=\"preprocessor\">#ifdef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01243.html\"> 174</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a> {};</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span><span class=\"preprocessor\">#else </span></div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"> 178</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">//DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span> <span class=\"comment\">// for vertices</span></div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> </div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00183\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html\"> 183</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> {</div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\"> 186</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\"> 187</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a>;</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\"> 188</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> </div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> </div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a> & asCommon()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Common</a>*<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>);</div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> }</div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"> 198</span> </div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> <span class=\"keyword\">typename</span> RefinementSubEntityIteratorSpecial<dimension, CoordType, dimension>::CoordVector</div>\n+<div class=\"foldopen\" id=\"foldopen00201\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01247.html#a6e351e5fab7eefb3a9ce6c6bb60b2ddd\"> 201</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span><a class=\"code hl_class\" href=\"a01243.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> std::array<unsigned int, dimension> v(asCommon().vertexCoord());</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> <a class=\"code hl_typedef\" href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">CoordVector</a> c;</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d = 0; d < dimension; d++)</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> {</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> c[d] = v[d]*1.0 / asCommon()._nIntervals;</div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> }</div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"keywordflow\">return</span> c;</div>\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> </div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> <span class=\"comment\">// for elements</span></div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00216\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html\"> 216</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> {</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\"> 219</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\"> 220</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a>;</div>\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\"> 221</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::IndexVector <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\"> 222</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> </div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> </div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a> & asCommon()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keywordflow\">return</span> *<span class=\"keyword\">static_cast<</span><span class=\"keyword\">const </span><a class=\"code hl_typedef\" href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Common</a>*<span class=\"keyword\">></span>(<span class=\"keyword\">this</span>);</div>\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"> 231</span> }</div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> </div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> <span class=\"keyword\">typename</span> RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::IndexVector</div>\n+<div class=\"foldopen\" id=\"foldopen00236\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#a1103c0d47abdc5efba90f13337311709\"> 236</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span><a class=\"code hl_class\" href=\"a01243.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nIndices = 1 << dimension;</div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"comment\">// cell index tuple</span></div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> std::array<unsigned int, dimension> e(asCommon().cellCoord());</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> </div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> <span class=\"comment\">// vertices</span></div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> <a class=\"code hl_typedef\" href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">IndexVector</a> vec;</div>\n+<div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i < nIndices; ++i)</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> {</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> <span class=\"keywordtype\">int</span> base = 1;</div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> std::array<unsigned int, dimension> alpha(asCommon().idx2multiidx(i));</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d = 0; d < dimension; d++) {</div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> vec[i] += (alpha[d] + e[d]) * base;</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> base *= asCommon()._nIntervals+1;</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> }</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> }</div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <span class=\"keywordflow\">return</span> vec;</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> </div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01251.html#aff11904f643c5e851bec07d0786ed42d\"> 260</a></span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><a class=\"code hl_class\" href=\"a01243.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> std::array<unsigned int, dimension> v(asCommon().cellCoord());</div>\n+<div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> <a class=\"code hl_typedef\" href=\"a01251.html#a84732012172707ac559624d0b864a83b\">CoordVector</a> c;</div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"> 265</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> d=0; d<dimension; d++)</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> {</div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"> 267</span> c[d] = (v[d]*1.0 + 0.5) / asCommon()._nIntervals;</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"> 268</span> }</div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"> 269</span> <span class=\"keywordflow\">return</span> c;</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> </div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"comment\">// common</span></div>\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"> 273</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00275\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html\"> 275</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01235.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01239.html\">Codim</a><codimension>::SubEntityIterator</div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension,</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> {</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\"> 281</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01235.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\"> 282</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01239.html\">Codim<codimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">This</a>;</div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> </div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\"> 284</a></span> <a class=\"code hl_function\" href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\">SubEntityIterator</a>(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> index, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> </div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\"> 286</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\"> 287</a></span> <span class=\"keywordtype\">void</span> <a class=\"code hl_function\" href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\">increment</a>();</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> </div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\"> 289</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\">index</a>() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\"> 290</a></span> Geometry <a class=\"code hl_function\" href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\">geometry</a> () <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01243.html\">RefinementSubEntityIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>, CoordType, codimension>;</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> _index;</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> _nIntervals;</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> </div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> cellCoord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">return</span> idx2coord(idx, _nIntervals);</div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> }</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> </div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> vertexCoord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> <span class=\"keywordflow\">return</span> idx2coord(idx, _nIntervals+1u);</div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> }</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> </div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> cellCoord()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> <span class=\"keywordflow\">return</span> cellCoord(_index);</div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> }</div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> </div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> vertexCoord()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keywordflow\">return</span> vertexCoord(_index);</div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> }</div>\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> </div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> idx2coord(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> w)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> std::array<unsigned int, dimension> c;</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> d = 0; d < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; d++)</div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> {</div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> c[d] = idx%w;</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"> 327</span> idx = idx/w;</div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span> }</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> c;</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> coord2idx(std::array<unsigned int, dimension> c, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> w)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0;</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> d = <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; d > 0; d--)</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> {</div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> i *= w;</div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> i += c[d-1];</div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> }</div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <span class=\"keywordflow\">return</span> i;</div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> }</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> </div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> std::array<unsigned int, dimension></div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> idx2multiidx(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> idx)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> std::array<unsigned int, dimension> alpha;</div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; ++i)</div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> alpha[i] = (idx >> i) & 1u;</div>\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"> 350</span> <span class=\"keywordflow\">return</span> alpha;</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> }</div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> </div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"> 358</span> SubEntityIterator(<span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> index, <span class=\"keywordtype\">unsigned</span> <span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> : _index(index), _nIntervals(nIntervals)</div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> {}</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> </div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span> equals(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keywordflow\">return</span> ((_index == other._index) && (_nIntervals == other._nIntervals));</div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> }</div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span> </div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> increment()</div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> {</div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> ++_index;</div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span> }</div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> </div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> index()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">return</span> _index;</div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> }</div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> </div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"keyword\">typename</span> RefinementImp<dimension, CoordType>::template Codim<codimension>::Geometry</div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::geometry ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> std::array<unsigned int,dimension> intCoords = idx2coord(_index,_nIntervals);</div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> </div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> Dune::FieldVector<CoordType,dimension> lower;</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> Dune::FieldVector<CoordType,dimension> upper;</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> </div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> assert(codimension == 0 or codimension == <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>);</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> </div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span> (codimension == 0) {</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> j = 0; j < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; j++)</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> {</div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> lower[j] = double(intCoords[j]) / double(_nIntervals);</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> upper[j] = double(intCoords[j] + 1) / double(_nIntervals);</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> }</div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> </div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">typename</span> RefinementImp<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>,</div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> CoordType>::template <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Codim<codimension>::Geometry</a>(lower,upper);</div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> } <span class=\"keywordflow\">else</span> {</div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">size_t</span> j = 0; j < <a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>; j++)</div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> lower[j] = upper[j] = <span class=\"keywordtype\">double</span>(intCoords[j]) / double(_nIntervals);</div>\n+<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> </div>\n+<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">typename</span> RefinementImp<<a class=\"code hl_variable\" href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">dimension</a>,</div>\n+<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> CoordType>::template <a class=\"code hl_typedef\" href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Codim<codimension>::Geometry</a>(lower,upper,std::bitset<dimension>(0));</div>\n+<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n+<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> }</div>\n+<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> </div>\n+<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> </div>\n+<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> } <span class=\"comment\">// namespace HCube</span></div>\n+</div>\n+<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span> </div>\n+<div class=\"line\"><a id=\"l00423\" name=\"l00423\"></a><span class=\"lineno\"> 423</span> <span class=\"comment\">// ///////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> <span class=\"comment\">// The refinement traits</span></div>\n+<div class=\"line\"><a id=\"l00426\" name=\"l00426\"></a><span class=\"lineno\"> 426</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> </div>\n+<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00429\" name=\"l00429\"></a><span class=\"lineno\"> 429</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class </span>CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId,</div>\n+<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> <span class=\"keywordtype\">int</span> dim></div>\n+<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> <span class=\"keyword\">struct </span>Traits<</div>\n+<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> topologyId, CoordType, coerceToId, dim,</div>\n+<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n+<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> (dim >= 2 &&</div>\n+<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span> (GeometryTypes::cube(dim).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> (topologyId >> 1) &&</div>\n+<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span> (GeometryTypes::cube(dim).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span> (coerceToId >> 1)</div>\n+<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span> )>::type</div>\n+<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> ></div>\n+<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> {</div>\n+<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> <span class=\"keyword\">typedef</span> HCube::RefinementImp<dim, CoordType> Imp;</div>\n+<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span> };</div>\n+<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> </div>\n+<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span> </div>\n+<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"> 448</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> </div>\n+<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</span></div>\n+<div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00194_html\"><div class=\"ttname\"><a href=\"a00194.html\">axisalignedcubegeometry.hh</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div></div>\n+<div class=\"ttc\" id=\"aa00236_html\"><div class=\"ttname\"><a href=\"a00236.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n+<div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01355_html\"><div class=\"ttname\"><a href=\"a01355.html\">Dune::TopologyFactory</a></div><div class=\"ttdoc\">Provide a factory over the generic topologies.</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:42</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_a441ea227eca6e6ce76ecca5679d4c825\"><div class=\"ttname\"><a href=\"a01355.html#a441ea227eca6e6ce76ecca5679d4c825\">Dune::TopologyFactory::Factory</a></div><div class=\"ttdeci\">Traits::Factory Factory</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:47</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_a58349d7deb73100e59f0f5117472e4e0\"><div class=\"ttname\"><a href=\"a01355.html#a58349d7deb73100e59f0f5117472e4e0\">Dune::TopologyFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Dune::GeometryType &gt, const Key &key)</div><div class=\"ttdoc\">dynamically create objects</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:50</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_a66ec306b5835b847f350fed4d9cac575\"><div class=\"ttname\"><a href=\"a01355.html#a66ec306b5835b847f350fed4d9cac575\">Dune::TopologyFactory::dimension</a></div><div class=\"ttdeci\">static const unsigned int dimension</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:44</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_a83748c7363fab70ef46deec7f7f6e9a8\"><div class=\"ttname\"><a href=\"a01355.html#a83748c7363fab70ef46deec7f7f6e9a8\">Dune::TopologyFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Key &key)</div><div class=\"ttdoc\">statically create objects</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:58</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_a997f0bce257dbb952974507385bfc7c8\"><div class=\"ttname\"><a href=\"a01355.html#a997f0bce257dbb952974507385bfc7c8\">Dune::TopologyFactory::release</a></div><div class=\"ttdeci\">static void release(Object *object)</div><div class=\"ttdoc\">release the object returned by the create methods</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:71</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_aa4fd3e0e671225cd8a7851ebed201f2a\"><div class=\"ttname\"><a href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Dune::TopologyFactory::Key</a></div><div class=\"ttdeci\">Traits::Key Key</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:45</div></div>\n-<div class=\"ttc\" id=\"aa01355_html_af8e95b31a464841f84839db4d7613136\"><div class=\"ttname\"><a href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Dune::TopologyFactory::Object</a></div><div class=\"ttdeci\">Traits::Object Object</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:46</div></div>\n-<div class=\"ttc\" id=\"aa01359_html\"><div class=\"ttname\"><a href=\"a01359.html\">Dune::TopologySingletonFactory</a></div><div class=\"ttdoc\">A wrapper for a TopologyFactory providing singleton storage. Same usage as TopologyFactory but with e...</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:82</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_a17368598beb2629fe349bd21cac861a1\"><div class=\"ttname\"><a href=\"a01359.html#a17368598beb2629fe349bd21cac861a1\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static auto create(const Key &key) -> std::enable_if_t< Topology::dimension==dimension, Object * ></div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:103</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_a6709498e455988a544ef5b760849cf0f\"><div class=\"ttname\"><a href=\"a01359.html#a6709498e455988a544ef5b760849cf0f\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static Object * create(const Dune::GeometryType &gt, const Key &key)</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:88</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_a6b29c04375e6ac312f35b3fd2960c5de\"><div class=\"ttname\"><a href=\"a01359.html#a6b29c04375e6ac312f35b3fd2960c5de\">Dune::TopologySingletonFactory::release</a></div><div class=\"ttdeci\">static void release(Object *object)</div><div class=\"ttdoc\">release the object returned by the create methods</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:110</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_aaeca2707ab5e5c86e2b478493db495d8\"><div class=\"ttname\"><a href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Dune::TopologySingletonFactory::Object</a></div><div class=\"ttdeci\">const Factory::Object Object</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:85</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_aafa55fd9a319b566b070649b57b9565f\"><div class=\"ttname\"><a href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Dune::TopologySingletonFactory::Key</a></div><div class=\"ttdeci\">Factory::Key Key</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:84</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_ad03f221d70a250c913da78991db87cc0\"><div class=\"ttname\"><a href=\"a01359.html#ad03f221d70a250c913da78991db87cc0\">Dune::TopologySingletonFactory::create</a></div><div class=\"ttdeci\">static auto create(const Key &key) -> std::enable_if_t< static_cast< GeometryType >(geometryId).dim()==dimension, Object * ></div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:95</div></div>\n-<div class=\"ttc\" id=\"aa01359_html_aeb61e596d0a5e5f4f6e917bf33438c6d\"><div class=\"ttname\"><a href=\"a01359.html#aeb61e596d0a5e5f4f6e917bf33438c6d\">Dune::TopologySingletonFactory::dimension</a></div><div class=\"ttdeci\">static const unsigned int dimension</div><div class=\"ttdef\"><b>Definition</b> topologyfactory.hh:83</div></div>\n-<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_ac3ddb6f3ab2ff87d7a2366308c3143ef\"><div class=\"ttname\"><a href=\"a01367.html#ac3ddb6f3ab2ff87d7a2366308c3143ef\">Dune::GeometryType::id</a></div><div class=\"ttdeci\">constexpr unsigned int id() const</div><div class=\"ttdoc\">Return the topology id of the type.</div><div class=\"ttdef\"><b>Definition</b> type.hh:365</div></div>\n+<div class=\"ttc\" id=\"aa01111_html\"><div class=\"ttname\"><a href=\"a01111.html\">Dune::AxisAlignedCubeGeometry</a></div><div class=\"ttdoc\">A geometry implementation for axis-aligned hypercubes.</div><div class=\"ttdef\"><b>Definition</b> axisalignedcubegeometry.hh:50</div></div>\n+<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n+<div class=\"ttc\" id=\"aa01235_html\"><div class=\"ttname\"><a href=\"a01235.html\">Dune::RefinementImp::HCube::RefinementImp</a></div><div class=\"ttdoc\">Refinement implementation for hypercubes</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:74</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a08d274f5daa8f84e2135818bb9670fd8\"><div class=\"ttname\"><a href=\"a01235.html#a08d274f5daa8f84e2135818bb9670fd8\">Dune::RefinementImp::HCube::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:85</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a09677c53ba97d4a738d262015c036a3c\"><div class=\"ttname\"><a href=\"a01235.html#a09677c53ba97d4a738d262015c036a3c\">Dune::RefinementImp::HCube::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:152</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a284b1a78268bd7ea7bf90fcae61129e1\"><div class=\"ttname\"><a href=\"a01235.html#a284b1a78268bd7ea7bf90fcae61129e1\">Dune::RefinementImp::HCube::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static unsigned nVertices(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:108</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a4324744c8c434b685eca377ab827ac3e\"><div class=\"ttname\"><a href=\"a01235.html#a4324744c8c434b685eca377ab827ac3e\">Dune::RefinementImp::HCube::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:125</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a5ee6908ce16efd99fb0354742e2885e9\"><div class=\"ttname\"><a href=\"a01235.html#a5ee6908ce16efd99fb0354742e2885e9\">Dune::RefinementImp::HCube::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int,(1<< dimension)> IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:86</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a80c2305efd10c38620e8f8afa70d01cf\"><div class=\"ttname\"><a href=\"a01235.html#a80c2305efd10c38620e8f8afa70d01cf\">Dune::RefinementImp::HCube::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:83</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a881d15670845010ba5d3f94dbf495857\"><div class=\"ttname\"><a href=\"a01235.html#a881d15670845010ba5d3f94dbf495857\">Dune::RefinementImp::HCube::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:84</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_a900fa8d3c7a2740407d0ec2fc5e55684\"><div class=\"ttname\"><a href=\"a01235.html#a900fa8d3c7a2740407d0ec2fc5e55684\">Dune::RefinementImp::HCube::RefinementImp::nElements</a></div><div class=\"ttdeci\">static unsigned nElements(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:133</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_aa3f8d065224585bbe31b37cbe791b78c\"><div class=\"ttname\"><a href=\"a01235.html#aa3f8d065224585bbe31b37cbe791b78c\">Dune::RefinementImp::HCube::RefinementImp::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:79</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_ac5d2fb3b236deb949361083733c85a21\"><div class=\"ttname\"><a href=\"a01235.html#ac5d2fb3b236deb949361083733c85a21\">Dune::RefinementImp::HCube::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:144</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_ae88d11481e19f2152fe0a3aac1d4781e\"><div class=\"ttname\"><a href=\"a01235.html#ae88d11481e19f2152fe0a3aac1d4781e\">Dune::RefinementImp::HCube::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdoc\">Know your own dimension.</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:77</div></div>\n+<div class=\"ttc\" id=\"aa01235_html_aeb9fffe7bec17cceb9a08d577a616ebe\"><div class=\"ttname\"><a href=\"a01235.html#aeb9fffe7bec17cceb9a08d577a616ebe\">Dune::RefinementImp::HCube::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(unsigned nIntervals)</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:117</div></div>\n+<div class=\"ttc\" id=\"aa01239_html\"><div class=\"ttname\"><a href=\"a01239.html\">Dune::RefinementImp::HCube::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> hcube.cc:100</div></div>\n+<div class=\"ttc\" id=\"aa01239_html_a5d34d00f90284ebc56413c9a733164bd\"><div class=\"ttname\"><a href=\"a01239.html#a5d34d00f90284ebc56413c9a733164bd\">Dune::RefinementImp::HCube::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::AxisAlignedCubeGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:102</div></div>\n+<div class=\"ttc\" id=\"aa01243_html\"><div class=\"ttname\"><a href=\"a01243.html\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial</a></div><div class=\"ttdoc\">SubEntityIterator base class for hypercube refinement.</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:174</div></div>\n+<div class=\"ttc\" id=\"aa01247_html_a3fe7bbb96d2ba3c90484d21fece4f92b\"><div class=\"ttname\"><a href=\"a01247.html#a3fe7bbb96d2ba3c90484d21fece4f92b\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:188</div></div>\n+<div class=\"ttc\" id=\"aa01247_html_a8755fd1fe3f4ac92bc5ffb221d889ea4\"><div class=\"ttname\"><a href=\"a01247.html#a8755fd1fe3f4ac92bc5ffb221d889ea4\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:187</div></div>\n+<div class=\"ttc\" id=\"aa01247_html_abdbfc89c15f5fcc4c0bd94a13079d412\"><div class=\"ttname\"><a href=\"a01247.html#abdbfc89c15f5fcc4c0bd94a13079d412\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:186</div></div>\n+<div class=\"ttc\" id=\"aa01251_html_a1214161126dc70a8e6e0bb5e7d948276\"><div class=\"ttname\"><a href=\"a01251.html#a1214161126dc70a8e6e0bb5e7d948276\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:219</div></div>\n+<div class=\"ttc\" id=\"aa01251_html_a76a800df943b45a5a45e0a26238433ea\"><div class=\"ttname\"><a href=\"a01251.html#a76a800df943b45a5a45e0a26238433ea\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::Common</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::SubEntityIterator Common</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:220</div></div>\n+<div class=\"ttc\" id=\"aa01251_html_a84732012172707ac559624d0b864a83b\"><div class=\"ttname\"><a href=\"a01251.html#a84732012172707ac559624d0b864a83b\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:222</div></div>\n+<div class=\"ttc\" id=\"aa01251_html_ab70205ae51bc66b8fc0aa7938110d715\"><div class=\"ttname\"><a href=\"a01251.html#ab70205ae51bc66b8fc0aa7938110d715\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:221</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_a297f10ce6b24ef267266d9830f525c57\"><div class=\"ttname\"><a href=\"a01255.html#a297f10ce6b24ef267266d9830f525c57\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(unsigned int index, unsigned int nIntervals)</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_a2fb42d84cb273427af4097ea28dd1aee\"><div class=\"ttname\"><a href=\"a01255.html#a2fb42d84cb273427af4097ea28dd1aee\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_a7c25c676a3046e97f629a2c4977ccf9d\"><div class=\"ttname\"><a href=\"a01255.html#a7c25c676a3046e97f629a2c4977ccf9d\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::geometry</a></div><div class=\"ttdeci\">Geometry geometry() const</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_a8cc257f66d6e80a619d08ddec8c30f49\"><div class=\"ttname\"><a href=\"a01255.html#a8cc257f66d6e80a619d08ddec8c30f49\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:281</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_ae383a0a4fa66a36e4e40fd18d0966057\"><div class=\"ttname\"><a href=\"a01255.html#ae383a0a4fa66a36e4e40fd18d0966057\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::index</a></div><div class=\"ttdeci\">int index() const</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_ae6aa3faec76941263f9ee6290e83be4f\"><div class=\"ttname\"><a href=\"a01255.html#ae6aa3faec76941263f9ee6290e83be4f\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::increment</a></div><div class=\"ttdeci\">void increment()</div></div>\n+<div class=\"ttc\" id=\"aa01255_html_afa1cc85177cf797515a9ddc2c772de71\"><div class=\"ttname\"><a href=\"a01255.html#afa1cc85177cf797515a9ddc2c772de71\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">Refinement::template Codim< codimension >::SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> hcube.cc:282</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,220 +1,529 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-topologyfactory.hh\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+hcube.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n-6#define DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n+5#ifndef DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n+_\b6#define DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n 7\n-8#include <cassert>\n-9\n-10#include <array>\n-11#include <map>\n-12#include <memory>\n-13#include <type_traits>\n-14#include <vector>\n-15\n-16#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-17#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh>\n-18\n-19namespace _\bD_\bu_\bn_\be\n-20{\n-21\n-40 template <class Traits>\n-_\b4_\b1 struct _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by\n-42 {\n-43 // extract types from Traits class\n-_\b4_\b4 static const unsigned int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = Traits::dimension;\n-_\b4_\b5 typedef typename Traits::Key _\bK_\be_\by;\n-_\b4_\b6 typedef typename Traits::Object _\bO_\bb_\bj_\be_\bc_\bt;\n-_\b4_\b7 typedef typename Traits::Factory _\bF_\ba_\bc_\bt_\bo_\br_\by;\n+41#include <cassert>\n+42\n+43#include <dune/common/fvector.hh>\n+44#include <dune/common/iteratorfacades.hh>\n+45\n+46#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+47#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n 48\n-_\b5_\b0 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n-51 {\n-52 return Impl::toGeometryTypeIdConstant<dimension>(gt, [&](auto id) {\n-53 return create<decltype(id)::value>(key);\n-54 });\n-55 }\n-57 template< GeometryType::Id geometryId >\n-_\b5_\b8 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n-59 {\n-60 return Factory::template createObject< geometryId >( key );\n-61 }\n-62\n-64 template< class Topology >\n-_\b6_\b5 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n-66 {\n-67 return Factory::template createObject< Topology >( key );\n-68 }\n-69\n-_\b7_\b1 static void _\br_\be_\bl_\be_\ba_\bs_\be( _\bO_\bb_\bj_\be_\bc_\bt *object ) { delete object; }\n-72 };\n-73\n-74\n-75\n-80 template <class Factory>\n-_\b8_\b1 struct _\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by\n-82 {\n-_\b8_\b3 static const unsigned int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = Factory::dimension;\n-_\b8_\b4 typedef typename Factory::Key _\bK_\be_\by;\n-_\b8_\b5 typedef const typename Factory::Object _\bO_\bb_\bj_\be_\bc_\bt;\n-86\n-_\b8_\b8 static _\bO_\bb_\bj_\be_\bc_\bt *_\bc_\br_\be_\ba_\bt_\be ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n-89 {\n-90 assert( gt._\bi_\bd() < numTopologies );\n-91 return instance().getObject( gt, key );\n-92 }\n-94 template< GeometryType::Id geometryId >\n-_\b9_\b5 static auto _\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n-96 -> std::enable_if_t< static_cast<GeometryType>(geometryId).dim() ==\n-_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, _\bO_\bb_\bj_\be_\bc_\bt * >\n-97 {\n-98 return instance().template getObject< geometryId >( key );\n-99 }\n-100\n-102 template< class Topology >\n-_\b1_\b0_\b3 static auto _\bc_\br_\be_\ba_\bt_\be ( const _\bK_\be_\by &key )\n-104 -> std::enable_if_t< Topology::dimension == dimension, Object * >\n-105 {\n-106 return instance().template getObject< Topology >( key );\n-107 }\n-108\n-_\b1_\b1_\b0 static void _\br_\be_\bl_\be_\ba_\bs_\be ( _\bO_\bb_\bj_\be_\bc_\bt *object )\n-111 {}\n-112\n-113 private:\n-114 struct ObjectDeleter\n-115 {\n-116 void operator() ( _\bO_\bb_\bj_\be_\bc_\bt *ptr ) const { Factory::release( ptr ); }\n-117 };\n-118\n-119 static TopologySingletonFactory &instance ()\n-120 {\n-121 static TopologySingletonFactory instance;\n-122 return instance;\n-123 }\n-124\n-125 static const unsigned int numTopologies = (1 << _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n-126 typedef std::array< std::unique_ptr< Object, ObjectDeleter >, numTopologies\n-> Array;\n-127 typedef std::map< Key, Array > Storage;\n-128\n-129 TopologySingletonFactory () = default;\n-130\n-131 std::unique_ptr< Object, ObjectDeleter > &find ( const unsigned int\n-topologyId, const _\bK_\be_\by &key )\n-132 {\n-133 return storage_[ key ][ topologyId ];\n-134 }\n-135\n-136 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be >, const _\bK_\be_\by &key )\n-137 {\n-138 auto &object = find( gt._\bi_\bd(), key );\n-139 if( !object )\n-140 object.reset( Factory::create( gt, key ) );\n-141 return object.get();\n-142 }\n-143\n-144 template< GeometryType::Id geometryId >\n-145 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bK_\be_\by &key )\n-146 {\n-147 static constexpr GeometryType geometry = geometryId;\n-148 auto &object = find( geometry.id(), key );\n-149 if( !object )\n-150 object.reset( Factory::template create< geometry >( key ) );\n-151 return object.get();\n-152 }\n-153\n-154 template< class Topology >\n-155 _\bO_\bb_\bj_\be_\bc_\bt *getObject ( const _\bK_\be_\by &key )\n-156 {\n-157 auto &object = find( Topology::id, key );\n-158 if( !object )\n-159 object.reset( Factory::template create< Topology >( key ) );\n-160 return object.get();\n-161 }\n-162\n-163 Storage storage_;\n-164 };\n-165\n-166}\n-167\n-168#endif // #ifndef DUNE_GEOMETRY_TOPOLOGYFACTORY_HH\n-_\bt_\by_\bp_\be_\b._\bh_\bh\n-A unique label for each type of element that can occur in a grid.\n-_\bt_\by_\bp_\be_\bi_\bn_\bd_\be_\bx_\b._\bh_\bh\n-Helper classes to provide indices for geometrytypes for use in a vector.\n+49#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\" // for RefinementTraits\n+50\n+51namespace _\bD_\bu_\bn_\be\n+52{\n+53 namespace RefinementImp\n+54 {\n+_\b6_\b1 namespace HCube\n+62 {\n+72 template<int dimension_, class CoordType>\n+_\b7_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+74 {\n+75 public:\n+_\b7_\b7 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n+78 //- Know yourself\n+_\b7_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+80\n+81 template<int codimension>\n+82 struct _\bC_\bo_\bd_\bi_\bm;\n+_\b8_\b3 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b8_\b4 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b8_\b5 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b8_\b6 typedef FieldVector<int, (1<<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn)> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+87\n+88 static unsigned _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(unsigned nIntervals);\n+89 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(unsigned nIntervals);\n+90 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(unsigned nIntervals);\n+91\n+92 static unsigned _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(unsigned nIntervals);\n+93 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(unsigned nIntervals);\n+94 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(unsigned nIntervals);\n+95 };\n+96\n+97 template<int dimension, class CoordType>\n+98 template<int codimension>\n+_\b9_\b9 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n+100 {\n+101 class SubEntityIterator;\n+_\b1_\b0_\b2 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n+codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+103 };\n+104\n+105 template<int dimension, class CoordType>\n+106 unsigned\n+_\b1_\b0_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+108_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(unsigned nIntervals)\n+109 {\n+110 // return (nIntervals + 1)^dim\n+111 return Dune::power(nIntervals+1u, static_cast<unsigned>(dimension));\n+112 }\n+113\n+114 template<int dimension, class CoordType>\n+115 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b1_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+117_\b _\bv_\bB_\be_\bg_\bi_\bn(unsigned nIntervals)\n+118 {\n+119 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(0,nIntervals);\n+120 }\n+121\n+122 template<int dimension, class CoordType>\n+123 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b2_\b4 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+125_\b _\bv_\bE_\bn_\bd(unsigned nIntervals)\n+126 {\n+127 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nVertices(nIntervals),nIntervals);\n+128 }\n+129\n+130 template<int dimension, class CoordType>\n+131 unsigned\n+_\b1_\b3_\b2 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+133_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(unsigned nIntervals)\n+134 {\n+135 static_assert(dimension >= 0,\n+136 \"Negative dimension given, what the heck is that supposed to mean?\");\n+137 // return nIntervals^dim\n+138 return Dune::power(nIntervals, static_cast<unsigned>(dimension));\n+139 }\n+140\n+141 template<int dimension, class CoordType>\n+142 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b4_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+144_\b _\be_\bB_\be_\bg_\bi_\bn(unsigned nIntervals)\n+145 {\n+146 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(0,nIntervals);\n+147 }\n+148\n+149 template<int dimension, class CoordType>\n+150 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b5_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+152_\b _\be_\bE_\bn_\bd(unsigned nIntervals)\n+153 {\n+154 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nElements(nIntervals),nIntervals);\n+155 }\n+156\n+157 //\n+158 // The iterators\n+159 //\n+160\n+161#ifdef DOXYGEN\n+173 template<int dimension, class CoordType, int codimension>\n+_\b1_\b7_\b4 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl {};\n+175#else\n+176 template<int dimension, class CoordType, int codimension>\n+177 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+178#endif //DOXYGEN\n+179\n+180 // for vertices\n+181\n+182 template<int dimension, class CoordType>\n+_\b1_\b8_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n+184 {\n+185 public:\n+_\b1_\b8_\b6 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b8_\b7 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\bC_\bo_\bm_\bm_\bo_\bn;\n+_\b1_\b8_\b8 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+189\n+190 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+191\n+192 private:\n+193 const _\bC_\bo_\bm_\bm_\bo_\bn & asCommon() const\n+194 {\n+195 return *static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn*>(this);\n+196 }\n+197 };\n+198\n+199 template<int dimension, class CoordType>\n+200 typename RefinementSubEntityIteratorSpecial<dimension, CoordType,\n+dimension>::CoordVector\n+_\b2_\b0_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+202_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+203 {\n+204 std::array<unsigned int, dimension> v(asCommon().vertexCoord());\n+205 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br c;\n+206 for (int d = 0; d < dimension; d++)\n+207 {\n+208 c[d] = v[d]*1.0 / asCommon()._nIntervals;\n+209 }\n+210 return c;\n+211 }\n+212\n+213 // for elements\n+214\n+215 template<int dimension, class CoordType>\n+_\b2_\b1_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n+217 {\n+218 public:\n+_\b2_\b1_\b9 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b2_\b0 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bC_\bo_\bm_\bm_\bo_\bn;\n+_\b2_\b2_\b1 typedef typename Refinement::IndexVector _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+_\b2_\b2_\b2 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+223\n+224 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+225 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+226\n+227 private:\n+228 const _\bC_\bo_\bm_\bm_\bo_\bn & asCommon() const\n+229 {\n+230 return *static_cast<const _\bC_\bo_\bm_\bm_\bo_\bn*>(this);\n+231 }\n+232 };\n+233\n+234 template<int dimension, class CoordType>\n+235 typename RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>::\n+IndexVector\n+_\b2_\b3_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+237_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+238 {\n+239 constexpr static int nIndices = 1 << dimension;\n+240\n+241 // cell index tuple\n+242 std::array<unsigned int, dimension> e(asCommon().cellCoord());\n+243\n+244 // vertices\n+245 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vec;\n+246 for(int i = 0; i < nIndices; ++i)\n+247 {\n+248 int base = 1;\n+249 std::array<unsigned int, dimension> alpha(asCommon().idx2multiidx(i));\n+250 for (int d = 0; d < dimension; d++) {\n+251 vec[i] += (alpha[d] + e[d]) * base;\n+252 base *= asCommon()._nIntervals+1;\n+253 }\n+254 }\n+255 return vec;\n+256 }\n+257\n+258 template<int dimension, class CoordType>\n+259 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b2_\b6_\b0 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+261_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+262 {\n+263 std::array<unsigned int, dimension> v(asCommon().cellCoord());\n+264 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br c;\n+265 for (int d=0; d<dimension; d++)\n+266 {\n+267 c[d] = (v[d]*1.0 + 0.5) / asCommon()._nIntervals;\n+268 }\n+269 return c;\n+270 }\n+271\n+272 // common\n+273 template<int dimension, class CoordType>\n+274 template<int codimension>\n+_\b2_\b7_\b5 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n+SubEntityIterator\n+276 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n+277 CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n+278 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType,\n+codimension>\n+279 {\n+280 public:\n+_\b2_\b8_\b1 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b8_\b2 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\bT_\bh_\bi_\bs;\n+283\n+_\b2_\b8_\b4 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(unsigned int index, unsigned int nIntervals);\n+285\n+_\b2_\b8_\b6 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n+_\b2_\b8_\b7 void _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt();\n+288\n+_\b2_\b8_\b9 int _\bi_\bn_\bd_\be_\bx() const;\n+_\b2_\b9_\b0 Geometry _\bg_\be_\bo_\bm_\be_\bt_\br_\by () const;\n+291 private:\n+292 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType,\n+codimension>;\n+293 unsigned int _index;\n+294 unsigned int _nIntervals;\n+295\n+296 std::array<unsigned int, dimension>\n+297 cellCoord(unsigned int idx) const\n+298 {\n+299 return idx2coord(idx, _nIntervals);\n+300 }\n+301\n+302 std::array<unsigned int, dimension>\n+303 vertexCoord(unsigned int idx) const\n+304 {\n+305 return idx2coord(idx, _nIntervals+1u);\n+306 }\n+307\n+308 std::array<unsigned int, dimension>\n+309 cellCoord() const\n+310 {\n+311 return cellCoord(_index);\n+312 }\n+313\n+314 std::array<unsigned int, dimension>\n+315 vertexCoord() const\n+316 {\n+317 return vertexCoord(_index);\n+318 }\n+319\n+320 std::array<unsigned int, dimension>\n+321 idx2coord(unsigned int idx, unsigned int w) const\n+322 {\n+323 std::array<unsigned int, dimension> c;\n+324 for (unsigned int d = 0; d < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; d++)\n+325 {\n+326 c[d] = idx%w;\n+327 idx = idx/w;\n+328 }\n+329 return c;\n+330 }\n+331\n+332 unsigned int\n+333 coord2idx(std::array<unsigned int, dimension> c, unsigned int w) const\n+334 {\n+335 unsigned int i = 0;\n+336 for (unsigned int d = _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; d > 0; d--)\n+337 {\n+338 i *= w;\n+339 i += c[d-1];\n+340 }\n+341 return i;\n+342 }\n+343\n+344 std::array<unsigned int, dimension>\n+345 idx2multiidx(unsigned int idx) const\n+346 {\n+347 std::array<unsigned int, dimension> alpha;\n+348 for (unsigned int i = 0; i < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; ++i)\n+349 alpha[i] = (idx >> i) & 1u;\n+350 return alpha;\n+351 }\n+352 };\n+353\n+354#ifndef DOXYGEN\n+355 template<int dimension, class CoordType>\n+356 template<int codimension>\n+357 RefinementImp<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+358 SubEntityIterator(unsigned int index, unsigned int nIntervals)\n+359 : _index(index), _nIntervals(nIntervals)\n+360 {}\n+361\n+362 template<int dimension, class CoordType>\n+363 template<int codimension>\n+364 bool\n+365 RefinementImp<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+366 equals(const This &other) const\n+367 {\n+368 return ((_index == other._index) && (_nIntervals == other._nIntervals));\n+369 }\n+370\n+371 template<int dimension, class CoordType>\n+372 template<int codimension>\n+373 void\n+374 RefinementImp<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+375 increment()\n+376 {\n+377 ++_index;\n+378 }\n+379\n+380 template<int dimension, class CoordType>\n+381 template<int codimension>\n+382 int\n+383 RefinementImp<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::\n+384 index() const\n+385 {\n+386 return _index;\n+387 }\n+388\n+389 template<int dimension, class CoordType>\n+390 template<int codimension>\n+391 typename RefinementImp<dimension, CoordType>::template Codim<codimension>::\n+Geometry\n+392 RefinementImp<dimension, CoordType>::Codim<codimension>::\n+SubEntityIterator::geometry () const\n+393 {\n+394 std::array<unsigned int,dimension> intCoords = idx2coord\n+(_index,_nIntervals);\n+395\n+396 Dune::FieldVector<CoordType,dimension> lower;\n+397 Dune::FieldVector<CoordType,dimension> upper;\n+398\n+399 assert(codimension == 0 or codimension == _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n+400\n+401 if constexpr (codimension == 0) {\n+402 for (size_t j = 0; j < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; j++)\n+403 {\n+404 lower[j] = double(intCoords[j]) / double(_nIntervals);\n+405 upper[j] = double(intCoords[j] + 1) / double(_nIntervals);\n+406 }\n+407\n+408 return typename RefinementImp<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn,\n+409 CoordType>::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by(lower,upper);\n+410 } else {\n+411 for (size_t j = 0; j < _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn; j++)\n+412 lower[j] = upper[j] = double(intCoords[j]) / double(_nIntervals);\n+413\n+414 return typename RefinementImp<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn,\n+415 CoordType>::template _\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by(lower,upper,std::\n+bitset<dimension>(0));\n+416 }\n+417 }\n+418\n+419#endif // DOXYGEN\n+420\n+421 } // namespace HCube\n+422\n+423 // ///////////////////////\n+424 //\n+425 // The refinement traits\n+426 //\n+427\n+428#ifndef DOXYGEN\n+429 template<unsigned topologyId, class CoordType, unsigned coerceToId,\n+430 int dim>\n+431 struct Traits<\n+432 topologyId, CoordType, coerceToId, dim,\n+433 typename _\bs_\bt_\bd::enable_if<\n+434 (dim >= 2 &&\n+435 (GeometryTypes::cube(dim).id() >> 1) ==\n+436 (topologyId >> 1) &&\n+437 (GeometryTypes::cube(dim).id() >> 1) ==\n+438 (coerceToId >> 1)\n+439 )>::type\n+440 >\n+441 {\n+442 typedef HCube::RefinementImp<dim, CoordType> Imp;\n+443 };\n+444#endif\n+445\n+446 } // namespace RefinementImp\n+447\n+448} // namespace Dune\n+449\n+450#endif // DUNE_GEOMETRY_REFINEMENT_HCUBE_CC\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n+_\ba_\bx_\bi_\bs_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bc_\bu_\bb_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n+A geometry implementation for axis-aligned hypercubes.\n+_\bb_\ba_\bs_\be_\b._\bc_\bc\n+This file contains the parts independent of a particular Refinement\n+implementation.\n+_\bs_\bt_\bd\n+STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by\n-Provide a factory over the generic topologies.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:42\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bF_\ba_\bc_\bt_\bo_\br_\by\n-Traits::Factory Factory\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:47\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n-static Object * create(const Dune::GeometryType >, const Key &key)\n-dynamically create objects\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:50\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const unsigned int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:44\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n-static Object * create(const Key &key)\n-statically create objects\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:58\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\br_\be_\bl_\be_\ba_\bs_\be\n-static void release(Object *object)\n-release the object returned by the create methods\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bK_\be_\by\n-Traits::Key Key\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:45\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bO_\bb_\bj_\be_\bc_\bt\n-Traits::Object Object\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:46\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by\n-A wrapper for a TopologyFactory providing singleton storage. Same usage as\n-TopologyFactory but with e...\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:82\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n-static auto create(const Key &key) -> std::enable_if_t< Topology::\n-dimension==dimension, Object * >\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:103\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n-static Object * create(const Dune::GeometryType >, const Key &key)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:88\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\br_\be_\bl_\be_\ba_\bs_\be\n-static void release(Object *object)\n-release the object returned by the create methods\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:110\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bO_\bb_\bj_\be_\bc_\bt\n-const Factory::Object Object\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:85\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bK_\be_\by\n-Factory::Key Key\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:84\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bc_\br_\be_\ba_\bt_\be\n-static auto create(const Key &key) -> std::enable_if_t< static_cast<\n-GeometryType >(geometryId).dim()==dimension, Object * >\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:95\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bo_\bp_\bo_\bl_\bo_\bg_\by_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\bF_\ba_\bc_\bt_\bo_\br_\by_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const unsigned int dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn topologyfactory.hh:83\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-Unique label for each type of entities that can occur in DUNE grids.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bd\n-constexpr unsigned int id() const\n-Return the topology id of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:365\n+_\bD_\bu_\bn_\be_\b:_\b:_\bA_\bx_\bi_\bs_\bA_\bl_\bi_\bg_\bn_\be_\bd_\bC_\bu_\bb_\be_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+A geometry implementation for axis-aligned hypercubes.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn axisalignedcubegeometry.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+Static tag representing a codimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+Refinement implementation for hypercubes\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:74\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:85\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:152\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static unsigned nVertices(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:108\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:125\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< int,(1<< dimension)> IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:86\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:83\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:84\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static unsigned nElements(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:133\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:79\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:144\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+Know your own dimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:77\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(unsigned nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:117\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:100\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Dune::AxisAlignedCubeGeometry< CoordType, dimension-codimension, dimension >\n+Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:102\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+SubEntityIterator base class for hypercube refinement.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:174\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:188\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n+Refinement::template Codim< dimension >::SubEntityIterator Common\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:187\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:186\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:219\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bm_\bm_\bo_\bn\n+Refinement::template Codim< 0 >::SubEntityIterator Common\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:220\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:222\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:221\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(unsigned int index, unsigned int nIntervals)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n+bool equals(const This &other) const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by\n+Geometry geometry() const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:281\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bd_\be_\bx\n+int index() const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt\n+void increment()\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bT_\bh_\bi_\bs\n+Refinement::template Codim< codimension >::SubEntityIterator This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn hcube.cc:282\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00245.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00245.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: localfiniteelementgeometry.hh File Reference</title>\n+<title>dune-geometry: prismtriangulation.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,70 +65,86 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"#nested-classes\">Classes</a> |\n <a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> |\n <a href=\"#func-members\">Functions</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">localfiniteelementgeometry.hh File Reference</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">prismtriangulation.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <cassert></code><br />\n-<code>#include <functional></code><br />\n-<code>#include <limits></code><br />\n-<code>#include <type_traits></code><br />\n-<code>#include <vector></code><br />\n-<code>#include <dune/common/fmatrix.hh></code><br />\n-<code>#include <dune/common/fvector.hh></code><br />\n-<code>#include <dune/common/math.hh></code><br />\n+<div class=\"textblock\"><code>#include <dune/common/fvector.hh></code><br />\n <code>#include <dune/common/typetraits.hh></code><br />\n-<code>#include <dune/common/std/type_traits.hh></code><br />\n-<code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code><br />\n <code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00215_source.html\">dune/geometry/utility/algorithms.hh</a>></code><br />\n-<code>#include <<a class=\"el\" href=\"a00218_source.html\">dune/geometry/utility/convergence.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include "<a class=\"el\" href=\"a00236_source.html\">base.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00233_source.html\">simplex.cc</a>"</code><br />\n </div>\n <p><a href=\"a00245_source.html\">Go to the source code of this file.</a></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01131.html\">Dune::LocalFiniteElementGeometry< LFE, cdim ></a></td></tr>\n-<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Geometry implementation based on local-basis function parametrization. <a href=\"a01131.html#details\">More...</a><br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01287.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n+<tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Implementation of the refinement of a prism into simplices. <a href=\"a01287.html#details\">More...</a><br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01291.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01295.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01299.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01303.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00272\" id=\"r_a00272\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00272.html\">Dune::RefinementImp::PrismTriangulation</a></td></tr>\n+<tr class=\"memdesc:a00272\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating prisms (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a9e6fd2eea32599987fbb9be57de47cec\" title=\"Prism element in three dimensions.\">GeometryType::prism</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:ae56eb72b98f97f57cc224eb9b4394ef8\" id=\"r_ae56eb72b98f97f57cc224eb9b4394ef8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00245.html#ae56eb72b98f97f57cc224eb9b4394ef8\">DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</a></td></tr>\n+<tr class=\"separator:ae56eb72b98f97f57cc224eb9b4394ef8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\n Functions</h2></td></tr>\n-<tr class=\"memitem:ab8428045fd8606c48bb01ef84398c9b7\" id=\"r_ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memTemplParams\" colspan=\"2\">template<class I , class LFE , class GlobalCoordinate > </td></tr>\n-<tr class=\"memitem:ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#ab8428045fd8606c48bb01ef84398c9b7\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01091.html\">Geo::ReferenceElement</a>< I >, const LFE &, std::vector< GlobalCoordinate >) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, GlobalCoordinate::dimension ></td></tr>\n-<tr class=\"separator:ab8428045fd8606c48bb01ef84398c9b7\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a5c32fd93843a14930083653dee620ee1\" id=\"r_a5c32fd93843a14930083653dee620ee1\"><td class=\"memTemplParams\" colspan=\"2\">template<class I , class LFE , class F , class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>> </td></tr>\n-<tr class=\"memitem:a5c32fd93843a14930083653dee620ee1\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a5c32fd93843a14930083653dee620ee1\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01091.html\">Geo::ReferenceElement</a>< I >, const LFE &, const F &) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, Range::dimension ></td></tr>\n-<tr class=\"separator:a5c32fd93843a14930083653dee620ee1\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a6515706e91a0e4a2bab9cd783a23cbd6\" id=\"r_a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memTemplParams\" colspan=\"2\">template<class LFE , class GlobalCoordinate > </td></tr>\n-<tr class=\"memitem:a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a6515706e91a0e4a2bab9cd783a23cbd6\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a>, const LFE &localFE, std::vector< GlobalCoordinate >) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, GlobalCoordinate::dimension ></td></tr>\n-<tr class=\"separator:a6515706e91a0e4a2bab9cd783a23cbd6\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a800044360dc34fc6dc86a6f5aeefecfd\" id=\"r_a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memTemplParams\" colspan=\"2\">template<class LFE , class F , class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>> </td></tr>\n-<tr class=\"memitem:a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\"> </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html#a800044360dc34fc6dc86a6f5aeefecfd\">Dune::LocalFiniteElementGeometry</a> (<a class=\"el\" href=\"a01367.html\">GeometryType</a>, const LFE &, const F &) -> <a class=\"el\" href=\"a01131.html\">LocalFiniteElementGeometry</a>< LFE, Range::dimension ></td></tr>\n-<tr class=\"separator:a800044360dc34fc6dc86a6f5aeefecfd\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:af1da6e2739b0151f232dcecc95812162\" id=\"r_af1da6e2739b0151f232dcecc95812162\"><td class=\"memTemplParams\" colspan=\"2\">template<int dimension, class CoordType > </td></tr>\n+<tr class=\"memitem:af1da6e2739b0151f232dcecc95812162\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">FieldVector< CoordType, dimension > </td><td class=\"memTemplItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">Dune::RefinementImp::PrismTriangulation::transformCoordinate</a> (FieldVector< CoordType, dimension > point)</td></tr>\n+<tr class=\"separator:af1da6e2739b0151f232dcecc95812162\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"ae56eb72b98f97f57cc224eb9b4394ef8\" name=\"ae56eb72b98f97f57cc224eb9b4394ef8\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae56eb72b98f97f57cc224eb9b4394ef8\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,56 +1,57 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-localfiniteelementgeometry.hh File Reference\n-#include <cassert>\n-#include <functional>\n-#include <limits>\n-#include <type_traits>\n-#include <vector>\n-#include <dune/common/fmatrix.hh>\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+prismtriangulation.cc File Reference\n #include <dune/common/fvector.hh>\n-#include <dune/common/math.hh>\n #include <dune/common/typetraits.hh>\n-#include <dune/common/std/type_traits.hh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n #include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n+#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\b _\bL_\bF_\bE_\b,_\b _\bc_\bd_\bi_\bm_\b _\b>\n-\u00a0 Geometry implementation based on local-basis function parametrization.\n- _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0 Implementation of the refinement of a prism into simplices. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template<class I , class LFE , class GlobalCoordinate >\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt< I >, const LFE &,\n- std::vector< GlobalCoordinate >) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE,\n- GlobalCoordinate::dimension >\n-\u00a0\n-template<class I , class LFE , class F , class Range = std::\n-invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt< I >, const LFE &,\n- const F &) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE, Range::dimension >\n-\u00a0\n-template<class LFE , class GlobalCoordinate >\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE &localFE, std::\n- vector< GlobalCoordinate >) -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE,\n- GlobalCoordinate::dimension >\n-\u00a0\n-template<class LFE , class F , class Range = std::invoke_result_t<F,Impl::\n-LocalCoordinate_t<LFE>>>\n-\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE &, const F &) -\n- > _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by< LFE, Range::dimension >\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n+\u00a0 This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n+ triangulating prisms (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bp_\br_\bi_\bs_\bm -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bs_\bi_\bm_\bp_\bl_\be_\bx)\n \u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bP_\bR_\bI_\bS_\bM_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n+\u00a0\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template<int dimension, class CoordType >\n+FieldVector< CoordType, dimension >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:\n+ _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be (FieldVector<\n+ CoordType, dimension > point)\n+\u00a0\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_P\bPR\bRI\bIS\bSM\bMT\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00245_source.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00245_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: localfiniteelementgeometry.hh Source File</title>\n+<title>dune-geometry: prismtriangulation.cc Source File</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -70,439 +70,521 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n- <div class=\"headertitle\"><div class=\"title\">localfiniteelementgeometry.hh</div></div>\n+ <div class=\"headertitle\"><div class=\"title\">prismtriangulation.cc</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <a href=\"a00245.html\">Go to the documentation of this file.</a><div class=\"fragment\"><div class=\"line\"><a id=\"l00001\" name=\"l00001\"></a><span class=\"lineno\"> 1</span><span class=\"comment\">// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-</span></div>\n <div class=\"line\"><a id=\"l00002\" name=\"l00002\"></a><span class=\"lineno\"> 2</span><span class=\"comment\">// vi: set et ts=4 sw=2 sts=2:</span></div>\n <div class=\"line\"><a id=\"l00003\" name=\"l00003\"></a><span class=\"lineno\"> 3</span><span class=\"comment\">// SPDX-FileCopyrightInfo: Copyright \u00a9 DUNE Project contributors, see file LICENSE.md in module root</span></div>\n <div class=\"line\"><a id=\"l00004\" name=\"l00004\"></a><span class=\"lineno\"> 4</span><span class=\"comment\">// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception</span></div>\n-<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n-<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"> 6</span><span class=\"preprocessor\">#define DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n+<div class=\"line\"><a id=\"l00005\" name=\"l00005\"></a><span class=\"lineno\"> 5</span><span class=\"preprocessor\">#ifndef DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n+<div class=\"line\"><a id=\"l00006\" name=\"l00006\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00245.html#ae56eb72b98f97f57cc224eb9b4394ef8\"> 6</a></span><span class=\"preprocessor\">#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n <div class=\"line\"><a id=\"l00007\" name=\"l00007\"></a><span class=\"lineno\"> 7</span> </div>\n-<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <cassert></span></div>\n-<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <functional></span></div>\n-<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span><span class=\"preprocessor\">#include <limits></span></div>\n-<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <type_traits></span></div>\n-<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <vector></span></div>\n+<div class=\"line\"><a id=\"l00008\" name=\"l00008\"></a><span class=\"lineno\"> 8</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n+<div class=\"line\"><a id=\"l00009\" name=\"l00009\"></a><span class=\"lineno\"> 9</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n+<div class=\"line\"><a id=\"l00010\" name=\"l00010\"></a><span class=\"lineno\"> 10</span> </div>\n+<div class=\"line\"><a id=\"l00011\" name=\"l00011\"></a><span class=\"lineno\"> 11</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n+<div class=\"line\"><a id=\"l00012\" name=\"l00012\"></a><span class=\"lineno\"> 12</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00227.html\">dune/geometry/type.hh</a>></span></div>\n <div class=\"line\"><a id=\"l00013\" name=\"l00013\"></a><span class=\"lineno\"> 13</span> </div>\n-<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include <dune/common/fmatrix.hh></span></div>\n-<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include <dune/common/fvector.hh></span></div>\n-<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span><span class=\"preprocessor\">#include <dune/common/math.hh></span></div>\n-<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"preprocessor\">#include <dune/common/typetraits.hh></span></div>\n-<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span><span class=\"preprocessor\">#include <dune/common/std/type_traits.hh></span></div>\n-<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> </div>\n-<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00170.html\">dune/geometry/affinegeometry.hh</a>></span> <span class=\"comment\">// for FieldMatrixHelper</span></div>\n-<div class=\"line\"><a id=\"l00021\" name=\"l00021\"></a><span class=\"lineno\"> 21</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00212.html\">dune/geometry/quadraturerules.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00022\" name=\"l00022\"></a><span class=\"lineno\"> 22</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00182.html\">dune/geometry/referenceelements.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00023\" name=\"l00023\"></a><span class=\"lineno\"> 23</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00173.html\">dune/geometry/type.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00024\" name=\"l00024\"></a><span class=\"lineno\"> 24</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00215.html\">dune/geometry/utility/algorithms.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00025\" name=\"l00025\"></a><span class=\"lineno\"> 25</span><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00218.html\">dune/geometry/utility/convergence.hh</a>></span></div>\n-<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"> 26</span> </div>\n-<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a> {</div>\n-<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> </div>\n-<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE, <span class=\"keywordtype\">int</span> cdim></div>\n-<div class=\"foldopen\" id=\"foldopen00039\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html\"> 39</a></span><span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a></div>\n-<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span>{</div>\n-<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"keyword\">using </span>LocalFiniteElement = LFE;</div>\n-<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">using </span>LocalBasis = <span class=\"keyword\">typename</span> LFE::Traits::LocalBasisType;</div>\n-<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"> 43</span> <span class=\"keyword\">using </span>LocalBasisTraits = <span class=\"keyword\">typename</span> LocalBasis::Traits;</div>\n-<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> </div>\n-<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span><span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\"> 47</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> = <span class=\"keyword\">typename</span> LocalBasisTraits::DomainFieldType;</div>\n-<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span> </div>\n-<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\"> 50</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> = LocalBasisTraits::dimDomain;</div>\n-<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> </div>\n-<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\"> 53</a></span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\">coorddimension</a> = cdim;</div>\n-<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> </div>\n-<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\"> 56</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> = FieldVector<ctype, mydimension>;</div>\n-<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> </div>\n-<div class=\"line\"><a id=\"l00059\" name=\"l00059\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\"> 59</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> = FieldVector<ctype, coorddimension>;</div>\n-<div class=\"line\"><a id=\"l00060\" name=\"l00060\"></a><span class=\"lineno\"> 60</span> </div>\n-<div class=\"line\"><a id=\"l00062\" name=\"l00062\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\"> 62</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> = <span class=\"keyword\">decltype</span>(power(std::declval<ctype>(),<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n-<div class=\"line\"><a id=\"l00063\" name=\"l00063\"></a><span class=\"lineno\"> 63</span> </div>\n-<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\"> 65</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n-<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"> 66</span> </div>\n-<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\"> 68</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">JacobianTransposed</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n-<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"> 69</span> </div>\n-<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\"> 71</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> = FieldMatrix<ctype, mydimension, coorddimension>;</div>\n+<div class=\"line\"><a id=\"l00014\" name=\"l00014\"></a><span class=\"lineno\"> 14</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00236.html\">base.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00015\" name=\"l00015\"></a><span class=\"lineno\"> 15</span><span class=\"preprocessor\">#include "<a class=\"code\" href=\"a00233.html\">simplex.cc</a>"</span></div>\n+<div class=\"line\"><a id=\"l00016\" name=\"l00016\"></a><span class=\"lineno\"> 16</span> </div>\n+<div class=\"line\"><a id=\"l00017\" name=\"l00017\"></a><span class=\"lineno\"> 17</span><span class=\"keyword\">namespace </span><a class=\"code hl_namespace\" href=\"a00263.html\">Dune</a></div>\n+<div class=\"line\"><a id=\"l00018\" name=\"l00018\"></a><span class=\"lineno\"> 18</span>{</div>\n+<div class=\"line\"><a id=\"l00019\" name=\"l00019\"></a><span class=\"lineno\"> 19</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00020\" name=\"l00020\"></a><span class=\"lineno\"> 20</span> {</div>\n+<div class=\"foldopen\" id=\"foldopen00026\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00026\" name=\"l00026\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00272.html\"> 26</a></span> <span class=\"keyword\">namespace </span>PrismTriangulation</div>\n+<div class=\"line\"><a id=\"l00027\" name=\"l00027\"></a><span class=\"lineno\"> 27</span> {</div>\n+<div class=\"line\"><a id=\"l00028\" name=\"l00028\"></a><span class=\"lineno\"> 28</span> <span class=\"comment\">// ////////////</span></div>\n+<div class=\"line\"><a id=\"l00029\" name=\"l00029\"></a><span class=\"lineno\"> 29</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00030\" name=\"l00030\"></a><span class=\"lineno\"> 30</span> <span class=\"comment\">// Utilities</span></div>\n+<div class=\"line\"><a id=\"l00031\" name=\"l00031\"></a><span class=\"lineno\"> 31</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00032\" name=\"l00032\"></a><span class=\"lineno\"> 32</span> </div>\n+<div class=\"line\"><a id=\"l00033\" name=\"l00033\"></a><span class=\"lineno\"> 33</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Simplex::getPermutation</a>;</div>\n+<div class=\"line\"><a id=\"l00034\" name=\"l00034\"></a><span class=\"lineno\"> 34</span> <span class=\"keyword\">using </span><a class=\"code hl_function\" href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Simplex::referenceToKuhn</a>;</div>\n+<div class=\"line\"><a id=\"l00035\" name=\"l00035\"></a><span class=\"lineno\"> 35</span> </div>\n+<div class=\"line\"><a id=\"l00036\" name=\"l00036\"></a><span class=\"lineno\"> 36</span> <span class=\"comment\">// ////////////////////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00037\" name=\"l00037\"></a><span class=\"lineno\"> 37</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00038\" name=\"l00038\"></a><span class=\"lineno\"> 38</span> <span class=\"comment\">// Refine a prism with simplices</span></div>\n+<div class=\"line\"><a id=\"l00039\" name=\"l00039\"></a><span class=\"lineno\"> 39</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00040\" name=\"l00040\"></a><span class=\"lineno\"> 40</span> </div>\n+<div class=\"line\"><a id=\"l00041\" name=\"l00041\"></a><span class=\"lineno\"> 41</span> <span class=\"comment\">// forward declaration of the iterator base</span></div>\n+<div class=\"line\"><a id=\"l00042\" name=\"l00042\"></a><span class=\"lineno\"> 42</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00043\" name=\"l00043\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01283.html\"> 43</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>;</div>\n+<div class=\"line\"><a id=\"l00044\" name=\"l00044\"></a><span class=\"lineno\"> 44</span> <span class=\"comment\">/*</span></div>\n+<div class=\"line\"><a id=\"l00045\" name=\"l00045\"></a><span class=\"lineno\"> 45</span><span class=\"comment\"> * The permutations 0,2 and 3 of the Kuhn-decomposition of a cube into simplices form a prism.</span></div>\n+<div class=\"line\"><a id=\"l00046\" name=\"l00046\"></a><span class=\"lineno\"> 46</span><span class=\"comment\"> * The resulting prism is not oriented the same as the reference prism and so the Kuhn-coordinates</span></div>\n+<div class=\"line\"><a id=\"l00047\" name=\"l00047\"></a><span class=\"lineno\"> 47</span><span class=\"comment\"> * have to be transformed using the method below.</span></div>\n+<div class=\"line\"><a id=\"l00048\" name=\"l00048\"></a><span class=\"lineno\"> 48</span><span class=\"comment\"> */</span></div>\n+<div class=\"line\"><a id=\"l00049\" name=\"l00049\"></a><span class=\"lineno\"> 49</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType> FieldVector<CoordType, dimension></div>\n+<div class=\"foldopen\" id=\"foldopen00050\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00050\" name=\"l00050\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\"> 50</a></span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(FieldVector<CoordType, dimension> point)</div>\n+<div class=\"line\"><a id=\"l00051\" name=\"l00051\"></a><span class=\"lineno\"> 51</span> {</div>\n+<div class=\"line\"><a id=\"l00052\" name=\"l00052\"></a><span class=\"lineno\"> 52</span> FieldVector<CoordType, dimension> transform;</div>\n+<div class=\"line\"><a id=\"l00053\" name=\"l00053\"></a><span class=\"lineno\"> 53</span> transform[0] = point[1];</div>\n+<div class=\"line\"><a id=\"l00054\" name=\"l00054\"></a><span class=\"lineno\"> 54</span> transform[1] = 1 - point[0];</div>\n+<div class=\"line\"><a id=\"l00055\" name=\"l00055\"></a><span class=\"lineno\"> 55</span> transform[2] = point[2];</div>\n+<div class=\"line\"><a id=\"l00056\" name=\"l00056\"></a><span class=\"lineno\"> 56</span> <span class=\"keywordflow\">return</span> transform;</div>\n+<div class=\"line\"><a id=\"l00057\" name=\"l00057\"></a><span class=\"lineno\"> 57</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00058\" name=\"l00058\"></a><span class=\"lineno\"> 58</span> </div>\n+<div class=\"line\"><a id=\"l00065\" name=\"l00065\"></a><span class=\"lineno\"> 65</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension_, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00066\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00066\" name=\"l00066\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html\"> 66</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a></div>\n+<div class=\"line\"><a id=\"l00067\" name=\"l00067\"></a><span class=\"lineno\"> 67</span> {</div>\n+<div class=\"line\"><a id=\"l00068\" name=\"l00068\"></a><span class=\"lineno\"> 68</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00069\" name=\"l00069\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\"> 69</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a> = dimension_;</div>\n+<div class=\"line\"><a id=\"l00070\" name=\"l00070\"></a><span class=\"lineno\"> 70</span> </div>\n+<div class=\"line\"><a id=\"l00071\" name=\"l00071\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\"> 71</a></span> <span class=\"keyword\">typedef</span> CoordType <a class=\"code hl_typedef\" href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\">ctype</a>;</div>\n <div class=\"line\"><a id=\"l00072\" name=\"l00072\"></a><span class=\"lineno\"> 72</span> </div>\n-<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\"> 74</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">JacobianInverseTransposed</a> = FieldMatrix<ctype, coorddimension, mydimension>;</div>\n-<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"> 75</span> </div>\n-<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"> 76</span><span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ad4970fc5d4a040dcd6796d7d2cc76a30\"> 78</a></span> <span class=\"keyword\">using </span><a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a> = <a class=\"code hl_struct\" href=\"a01099.html\">Dune::ReferenceElements<ctype, mydimension></a>;</div>\n-<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\"> 79</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> = <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">ReferenceElements::ReferenceElement</a>;</div>\n-<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> </div>\n-<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span><span class=\"keyword\">protected</span>:</div>\n-<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\"> 82</a></span> <span class=\"keyword\">using </span><a class=\"code hl_typedef\" href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\">MatrixHelper</a> = Impl::FieldMatrixHelper<ctype>;</div>\n+<div class=\"line\"><a id=\"l00073\" name=\"l00073\"></a><span class=\"lineno\"> 73</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00074\" name=\"l00074\"></a><span class=\"lineno\"> 74</span> <span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01291.html\">Codim</a>;</div>\n+<div class=\"line\"><a id=\"l00075\" name=\"l00075\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\"> 75</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01291.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00076\" name=\"l00076\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\"> 76</a></span> <span class=\"keyword\">typedef</span> FieldVector<CoordType, dimension> <a class=\"code hl_typedef\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00077\" name=\"l00077\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\"> 77</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_struct\" href=\"a01291.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00078\" name=\"l00078\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\"> 78</a></span> <span class=\"keyword\">typedef</span> FieldVector<int, dimension+1> <a class=\"code hl_typedef\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00079\" name=\"l00079\"></a><span class=\"lineno\"> 79</span> </div>\n+<div class=\"line\"><a id=\"l00080\" name=\"l00080\"></a><span class=\"lineno\"> 80</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00081\" name=\"l00081\"></a><span class=\"lineno\"> 81</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00082\" name=\"l00082\"></a><span class=\"lineno\"> 82</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a> <a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n <div class=\"line\"><a id=\"l00083\" name=\"l00083\"></a><span class=\"lineno\"> 83</span> </div>\n-<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span><span class=\"keyword\">public</span>:</div>\n-<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\"> 86</a></span> <a class=\"code hl_function\" href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\">LocalFiniteElementGeometry</a> () = <span class=\"keywordflow\">default</span>;</div>\n+<div class=\"line\"><a id=\"l00084\" name=\"l00084\"></a><span class=\"lineno\"> 84</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">nElements</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00085\" name=\"l00085\"></a><span class=\"lineno\"> 85</span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n+<div class=\"line\"><a id=\"l00086\" name=\"l00086\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a15d10024428cb4136290fa22c2c68374\"> 86</a></span> <span class=\"keyword\">static</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a> <a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals);</div>\n <div class=\"line\"><a id=\"l00087\" name=\"l00087\"></a><span class=\"lineno\"> 87</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00103\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\"> 103</a></span> <a class=\"code hl_function\" href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\">LocalFiniteElementGeometry</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a>& refElement,</div>\n-<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keyword\">const</span> LocalFiniteElement& localFE,</div>\n-<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"> 105</span> std::vector<GlobalCoordinate> vertices)</div>\n-<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span> : refElement_(refElement)</div>\n-<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> , localFE_(localFE)</div>\n-<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> , vertices_(<a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::move(vertices))</div>\n-<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> {</div>\n-<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> assert(localFE_.size() == vertices_.size());</div>\n-<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> </div>\n-<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>Param,</div>\n-<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> std::enable_if_t<std::is_invocable_r_v<GlobalCoordinate,Param,LocalCoordinate>, <span class=\"keywordtype\">int</span>> = 0></div>\n-<div class=\"foldopen\" id=\"foldopen00128\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\"> 128</a></span> <a class=\"code hl_function\" href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\">LocalFiniteElementGeometry</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a>& refElement,</div>\n-<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"> 129</span> <span class=\"keyword\">const</span> LocalFiniteElement& localFE,</div>\n-<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span> Param&& parametrization)</div>\n-<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> : refElement_(refElement)</div>\n-<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> , localFE_(localFE)</div>\n-<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> {</div>\n-<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> localFE_.localInterpolation().interpolate(parametrization, vertices_);</div>\n-<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> </div>\n-<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">template</span> <<span class=\"keyword\">class</span>... Args></div>\n-<div class=\"foldopen\" id=\"foldopen00144\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\"> 144</a></span> <span class=\"keyword\">explicit</span> <a class=\"code hl_function\" href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> gt, Args&&... args)</div>\n-<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"> 145</span> : <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a>(<a class=\"code hl_struct\" href=\"a01099.html\">ReferenceElements</a>::general(gt), <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::forward<Args>(args)...)</div>\n-<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span> {}</div>\n-</div>\n-<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00149\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\"> 149</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">order</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().order();</div>\n-<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00159\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\"> 159</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">affine</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"> 161</span> <span class=\"keywordflow\">if</span> (!affine_)</div>\n-<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"> 162</span> affine_.emplace(affineImpl());</div>\n-<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"> 163</span> <span class=\"keywordflow\">return</span> *affine_;</div>\n-<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00167\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\"> 167</a></span> <a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a> <a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> <span class=\"keywordflow\">return</span> refElement_.type();</div>\n-<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00088\" name=\"l00088\"></a><span class=\"lineno\"> 88</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00089\" name=\"l00089\"></a><span class=\"lineno\"> 89</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, 0>;</div>\n+<div class=\"line\"><a id=\"l00090\" name=\"l00090\"></a><span class=\"lineno\"> 90</span> <span class=\"keyword\">friend</span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, <a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>>;</div>\n+<div class=\"line\"><a id=\"l00091\" name=\"l00091\"></a><span class=\"lineno\"> 91</span> </div>\n+<div class=\"line\"><a id=\"l00092\" name=\"l00092\"></a><span class=\"lineno\"> 92</span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01331.html\">Simplex::RefinementImp<dimension, CoordType></a> <a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00093\" name=\"l00093\"></a><span class=\"lineno\"> 93</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00094\" name=\"l00094\"></a><span class=\"lineno\"> 94</span> </div>\n+<div class=\"line\"><a id=\"l00095\" name=\"l00095\"></a><span class=\"lineno\"> 95</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00096\" name=\"l00096\"></a><span class=\"lineno\"> 96</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00097\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00097\" name=\"l00097\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01291.html\"> 97</a></span> <span class=\"keyword\">struct </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01291.html\">Codim</a></div>\n+<div class=\"line\"><a id=\"l00098\" name=\"l00098\"></a><span class=\"lineno\"> 98</span> {</div>\n+<div class=\"line\"><a id=\"l00099\" name=\"l00099\"></a><span class=\"lineno\"> 99</span> <span class=\"keyword\">class </span>SubEntityIterator;</div>\n+<div class=\"line\"><a id=\"l00100\" name=\"l00100\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\"> 100</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01151.html\">Dune::MultiLinearGeometry</a><CoordType,<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>-codimension,<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>> <a class=\"code hl_typedef\" href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00101\" name=\"l00101\"></a><span class=\"lineno\"> 101</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00102\" name=\"l00102\"></a><span class=\"lineno\"> 102</span> </div>\n+<div class=\"line\"><a id=\"l00103\" name=\"l00103\"></a><span class=\"lineno\"> 103</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00104\" name=\"l00104\"></a><span class=\"lineno\"> 104</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00105\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00105\" name=\"l00105\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\"> 105</a></span> <a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00106\" name=\"l00106\"></a><span class=\"lineno\"> 106</span><a class=\"code hl_function\" href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\"> nVertices</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00107\" name=\"l00107\"></a><span class=\"lineno\"> 107</span> {</div>\n+<div class=\"line\"><a id=\"l00108\" name=\"l00108\"></a><span class=\"lineno\"> 108</span> <span class=\"keywordflow\">return</span> BackendRefinement::nVertices(nIntervals) * 3;</div>\n+<div class=\"line\"><a id=\"l00109\" name=\"l00109\"></a><span class=\"lineno\"> 109</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00110\" name=\"l00110\"></a><span class=\"lineno\"> 110</span> </div>\n+<div class=\"line\"><a id=\"l00111\" name=\"l00111\"></a><span class=\"lineno\"> 111</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00112\" name=\"l00112\"></a><span class=\"lineno\"> 112</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00113\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00113\" name=\"l00113\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\"> 113</a></span> <a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00114\" name=\"l00114\"></a><span class=\"lineno\"> 114</span><a class=\"code hl_function\" href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\"> vBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00115\" name=\"l00115\"></a><span class=\"lineno\"> 115</span> {</div>\n+<div class=\"line\"><a id=\"l00116\" name=\"l00116\"></a><span class=\"lineno\"> 116</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00117\" name=\"l00117\"></a><span class=\"lineno\"> 117</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00118\" name=\"l00118\"></a><span class=\"lineno\"> 118</span> </div>\n+<div class=\"line\"><a id=\"l00119\" name=\"l00119\"></a><span class=\"lineno\"> 119</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00120\" name=\"l00120\"></a><span class=\"lineno\"> 120</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">RefinementImp<dimension, CoordType>::VertexIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00121\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00121\" name=\"l00121\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\"> 121</a></span> <a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00122\" name=\"l00122\"></a><span class=\"lineno\"> 122</span><a class=\"code hl_function\" href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\"> vEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00123\" name=\"l00123\"></a><span class=\"lineno\"> 123</span> {</div>\n+<div class=\"line\"><a id=\"l00124\" name=\"l00124\"></a><span class=\"lineno\"> 124</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">VertexIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00125\" name=\"l00125\"></a><span class=\"lineno\"> 125</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00126\" name=\"l00126\"></a><span class=\"lineno\"> 126</span> </div>\n+<div class=\"line\"><a id=\"l00127\" name=\"l00127\"></a><span class=\"lineno\"> 127</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00128\" name=\"l00128\"></a><span class=\"lineno\"> 128</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00129\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00129\" name=\"l00129\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\"> 129</a></span> <a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00130\" name=\"l00130\"></a><span class=\"lineno\"> 130</span><a class=\"code hl_function\" href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\"> nElements</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00131\" name=\"l00131\"></a><span class=\"lineno\"> 131</span> {</div>\n+<div class=\"line\"><a id=\"l00132\" name=\"l00132\"></a><span class=\"lineno\"> 132</span> <span class=\"keywordflow\">return</span> BackendRefinement::nElements(nIntervals) * 3;</div>\n+<div class=\"line\"><a id=\"l00133\" name=\"l00133\"></a><span class=\"lineno\"> 133</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00134\" name=\"l00134\"></a><span class=\"lineno\"> 134</span> </div>\n+<div class=\"line\"><a id=\"l00135\" name=\"l00135\"></a><span class=\"lineno\"> 135</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00136\" name=\"l00136\"></a><span class=\"lineno\"> 136</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00137\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00137\" name=\"l00137\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\"> 137</a></span> <a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00138\" name=\"l00138\"></a><span class=\"lineno\"> 138</span><a class=\"code hl_function\" href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\"> eBegin</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00139\" name=\"l00139\"></a><span class=\"lineno\"> 139</span> {</div>\n+<div class=\"line\"><a id=\"l00140\" name=\"l00140\"></a><span class=\"lineno\"> 140</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>(nIntervals);</div>\n+<div class=\"line\"><a id=\"l00141\" name=\"l00141\"></a><span class=\"lineno\"> 141</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00142\" name=\"l00142\"></a><span class=\"lineno\"> 142</span> </div>\n+<div class=\"line\"><a id=\"l00143\" name=\"l00143\"></a><span class=\"lineno\"> 143</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00144\" name=\"l00144\"></a><span class=\"lineno\"> 144</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">RefinementImp<dimension, CoordType>::ElementIterator</a></div>\n+<div class=\"foldopen\" id=\"foldopen00145\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00145\" name=\"l00145\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\"> 145</a></span> <a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">RefinementImp<dimension, CoordType>::</a></div>\n+<div class=\"line\"><a id=\"l00146\" name=\"l00146\"></a><span class=\"lineno\"> 146</span><a class=\"code hl_function\" href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\"> eEnd</a>(<span class=\"keywordtype\">int</span> nIntervals)</div>\n+<div class=\"line\"><a id=\"l00147\" name=\"l00147\"></a><span class=\"lineno\"> 147</span> {</div>\n+<div class=\"line\"><a id=\"l00148\" name=\"l00148\"></a><span class=\"lineno\"> 148</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">ElementIterator</a>(nIntervals, <span class=\"keyword\">true</span>);</div>\n+<div class=\"line\"><a id=\"l00149\" name=\"l00149\"></a><span class=\"lineno\"> 149</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00150\" name=\"l00150\"></a><span class=\"lineno\"> 150</span> </div>\n+<div class=\"line\"><a id=\"l00151\" name=\"l00151\"></a><span class=\"lineno\"> 151</span> <span class=\"comment\">// //////////////</span></div>\n+<div class=\"line\"><a id=\"l00152\" name=\"l00152\"></a><span class=\"lineno\"> 152</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00153\" name=\"l00153\"></a><span class=\"lineno\"> 153</span> <span class=\"comment\">// The iterator</span></div>\n+<div class=\"line\"><a id=\"l00154\" name=\"l00154\"></a><span class=\"lineno\"> 154</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00155\" name=\"l00155\"></a><span class=\"lineno\"> 155</span> </div>\n+<div class=\"line\"><a id=\"l00156\" name=\"l00156\"></a><span class=\"lineno\"> 156</span> <span class=\"comment\">// vertices</span></div>\n+<div class=\"line\"><a id=\"l00157\" name=\"l00157\"></a><span class=\"lineno\"> 157</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00158\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00158\" name=\"l00158\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html\"> 158</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, dimension></div>\n+<div class=\"line\"><a id=\"l00159\" name=\"l00159\"></a><span class=\"lineno\"> 159</span> {</div>\n+<div class=\"line\"><a id=\"l00160\" name=\"l00160\"></a><span class=\"lineno\"> 160</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00161\" name=\"l00161\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\"> 161</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00162\" name=\"l00162\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\"> 162</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::CoordVector <a class=\"code hl_typedef\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00163\" name=\"l00163\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\"> 163</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a>;</div>\n+<div class=\"line\"><a id=\"l00164\" name=\"l00164\"></a><span class=\"lineno\"> 164</span> </div>\n+<div class=\"line\"><a id=\"l00165\" name=\"l00165\"></a><span class=\"lineno\"> 165</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00166\" name=\"l00166\"></a><span class=\"lineno\"> 166</span> </div>\n+<div class=\"line\"><a id=\"l00167\" name=\"l00167\"></a><span class=\"lineno\"> 167</span> <span class=\"keywordtype\">void</span> increment();</div>\n+<div class=\"line\"><a id=\"l00168\" name=\"l00168\"></a><span class=\"lineno\"> 168</span> </div>\n+<div class=\"line\"><a id=\"l00169\" name=\"l00169\"></a><span class=\"lineno\"> 169</span> <a class=\"code hl_typedef\" href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00170\" name=\"l00170\"></a><span class=\"lineno\"> 170</span> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n <div class=\"line\"><a id=\"l00171\" name=\"l00171\"></a><span class=\"lineno\"> 171</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00173\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\"> 173</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"> 174</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"> 175</span> <span class=\"keywordflow\">return</span> refElement_.size(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>);</div>\n-<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"> 176</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00172\" name=\"l00172\"></a><span class=\"lineno\"> 172</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00173\" name=\"l00173\"></a><span class=\"lineno\"> 173</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00174\" name=\"l00174\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\"> 174</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::BackendRefinement <a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00175\" name=\"l00175\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\"> 175</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<dimension>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00176\" name=\"l00176\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a038843c5d7d5520ff8ef5d310a61f41d\"> 176</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 3;</div>\n <div class=\"line\"><a id=\"l00177\" name=\"l00177\"></a><span class=\"lineno\"> 177</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00179\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\"> 179</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a> (<span class=\"keywordtype\">int</span> i)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"> 180</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"> 181</span> assert( (i >= 0) && (i < <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a>()) );</div>\n-<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"> 182</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refElement_.position(i, <a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n-<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> }</div>\n+<div class=\"line\"><a id=\"l00178\" name=\"l00178\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\"> 178</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\">nIntervals_</a>;</div>\n+<div class=\"line\"><a id=\"l00179\" name=\"l00179\"></a><span class=\"lineno\"> 179</span> </div>\n+<div class=\"line\"><a id=\"l00180\" name=\"l00180\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\"> 180</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\">kuhnIndex</a>;</div>\n+<div class=\"line\"><a id=\"l00181\" name=\"l00181\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#ad83a8287371d043635821940eae78312\"> 181</a></span> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01295.html#ad83a8287371d043635821940eae78312\">backend</a>;</div>\n+<div class=\"line\"><a id=\"l00182\" name=\"l00182\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\"> 182</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\">backendEnd</a>;</div>\n+<div class=\"line\"><a id=\"l00183\" name=\"l00183\"></a><span class=\"lineno\"> 183</span> };</div>\n </div>\n <div class=\"line\"><a id=\"l00184\" name=\"l00184\"></a><span class=\"lineno\"> 184</span> </div>\n+<div class=\"line\"><a id=\"l00185\" name=\"l00185\"></a><span class=\"lineno\"> 185</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n <div class=\"foldopen\" id=\"foldopen00186\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\"> 186</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\">center</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refElement_.position(0, 0));</div>\n-<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00202\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\"> 202</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> <span class=\"keyword\">thread_local</span> std::vector<typename LocalBasisTraits::RangeType> shapeValues;</div>\n-<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().evaluateFunction(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>, shapeValues);</div>\n-<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> assert(shapeValues.size() == vertices_.size());</div>\n-<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> </div>\n-<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a> out(0);</div>\n-<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keywordflow\">for</span> (std::size_t i = 0; i < shapeValues.size(); ++i)</div>\n-<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> out.axpy(shapeValues[i], vertices_[i]);</div>\n-<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"> 211</span> </div>\n-<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span> <span class=\"keywordflow\">return</span> out;</div>\n-<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00232\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\"> 232</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">GlobalCoordinate</a>& y, Impl::GaussNewtonOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n-<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span> {</div>\n-<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> x = refElement_.position(0,0);</div>\n-<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> Impl::GaussNewtonErrorCode err = Impl::gaussNewton(</div>\n-<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(local); },</div>\n-<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> [&](<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a>(local); },</div>\n-<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> y, x, opts</div>\n-<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"> 239</span> );</div>\n-<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> </div>\n-<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keywordflow\">if</span> (err != Impl::GaussNewtonErrorCode::OK)</div>\n-<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"> 242</span> DUNE_THROW(Dune::Exception,</div>\n-<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"> 243</span> <span class=\"stringliteral\">"Local coordinate can not be recovered from global coordinate, error code = "</span> << <span class=\"keywordtype\">int</span>(err) << <span class=\"stringliteral\">"\\n"</span></div>\n-<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"> 244</span> << <span class=\"stringliteral\">" (global(x) - y).two_norm() = "</span> << (<a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(x) - y).two_norm()</div>\n-<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"> 245</span> << <span class=\"stringliteral\">" > tol = "</span> << opts.absTol);</div>\n+<div class=\"line\"><a id=\"l00186\" name=\"l00186\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a901b5292c50c5dfac3160ecba661c728\"> 186</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00187\" name=\"l00187\"></a><span class=\"lineno\"> 187</span><a class=\"code hl_class\" href=\"a01283.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00188\" name=\"l00188\"></a><span class=\"lineno\"> 188</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n+<div class=\"line\"><a id=\"l00189\" name=\"l00189\"></a><span class=\"lineno\"> 189</span> backend(<a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>::vBegin(nIntervals_)),</div>\n+<div class=\"line\"><a id=\"l00190\" name=\"l00190\"></a><span class=\"lineno\"> 190</span> backendEnd(<a class=\"code hl_typedef\" href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">BackendRefinement</a>::vEnd(nIntervals_))</div>\n+<div class=\"line\"><a id=\"l00191\" name=\"l00191\"></a><span class=\"lineno\"> 191</span> {</div>\n+<div class=\"line\"><a id=\"l00192\" name=\"l00192\"></a><span class=\"lineno\"> 192</span> <span class=\"keywordflow\">if</span> (end)</div>\n+<div class=\"line\"><a id=\"l00193\" name=\"l00193\"></a><span class=\"lineno\"> 193</span> kuhnIndex = nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00194\" name=\"l00194\"></a><span class=\"lineno\"> 194</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00195\" name=\"l00195\"></a><span class=\"lineno\"> 195</span> </div>\n+<div class=\"line\"><a id=\"l00196\" name=\"l00196\"></a><span class=\"lineno\"> 196</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00197\" name=\"l00197\"></a><span class=\"lineno\"> 197</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00198\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00198\" name=\"l00198\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a73814f3c5bd4256cf549eaca2e37b771\"> 198</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00199\" name=\"l00199\"></a><span class=\"lineno\"> 199</span><a class=\"code hl_class\" href=\"a01283.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00200\" name=\"l00200\"></a><span class=\"lineno\"> 200</span> {</div>\n+<div class=\"line\"><a id=\"l00201\" name=\"l00201\"></a><span class=\"lineno\"> 201</span> ++backend;</div>\n+<div class=\"line\"><a id=\"l00202\" name=\"l00202\"></a><span class=\"lineno\"> 202</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n+<div class=\"line\"><a id=\"l00203\" name=\"l00203\"></a><span class=\"lineno\"> 203</span> {</div>\n+<div class=\"line\"><a id=\"l00204\" name=\"l00204\"></a><span class=\"lineno\"> 204</span> backend = BackendRefinement::vBegin(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00205\" name=\"l00205\"></a><span class=\"lineno\"> 205</span> ++kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00206\" name=\"l00206\"></a><span class=\"lineno\"> 206</span> }</div>\n+<div class=\"line\"><a id=\"l00207\" name=\"l00207\"></a><span class=\"lineno\"> 207</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00208\" name=\"l00208\"></a><span class=\"lineno\"> 208</span> </div>\n+<div class=\"line\"><a id=\"l00209\" name=\"l00209\"></a><span class=\"lineno\"> 209</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00210\" name=\"l00210\"></a><span class=\"lineno\"> 210</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00211\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00211\" name=\"l00211\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#af25c8c54964e2155a3c79e9a3e5664d9\"> 211</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00212\" name=\"l00212\"></a><span class=\"lineno\"> 212</span><a class=\"code hl_class\" href=\"a01283.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00213\" name=\"l00213\"></a><span class=\"lineno\"> 213</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00214\" name=\"l00214\"></a><span class=\"lineno\"> 214</span> <span class=\"comment\">// while the kuhnIndex runs from 0,1,2 the actual permutations we need are 0,2,3</span></div>\n+<div class=\"line\"><a id=\"l00215\" name=\"l00215\"></a><span class=\"lineno\"> 215</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n+<div class=\"line\"><a id=\"l00216\" name=\"l00216\"></a><span class=\"lineno\"> 216</span> getPermutation<dimension>((kuhnIndex + 2) % 4)));</div>\n+<div class=\"line\"><a id=\"l00217\" name=\"l00217\"></a><span class=\"lineno\"> 217</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00218\" name=\"l00218\"></a><span class=\"lineno\"> 218</span> </div>\n+<div class=\"line\"><a id=\"l00219\" name=\"l00219\"></a><span class=\"lineno\"> 219</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00220\" name=\"l00220\"></a><span class=\"lineno\"> 220</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::Geometry</a></div>\n+<div class=\"foldopen\" id=\"foldopen00221\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00221\" name=\"l00221\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#a2110df9a2a1ff807b46a7af62d421540\"> 221</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00222\" name=\"l00222\"></a><span class=\"lineno\"> 222</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00223\" name=\"l00223\"></a><span class=\"lineno\"> 223</span> std::vector<CoordVector> corners(1);</div>\n+<div class=\"line\"><a id=\"l00224\" name=\"l00224\"></a><span class=\"lineno\"> 224</span> corners[0] = <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(backend.coords(),</div>\n+<div class=\"line\"><a id=\"l00225\" name=\"l00225\"></a><span class=\"lineno\"> 225</span> getPermutation<dimension>((kuhnIndex + 2) % 4)));</div>\n+<div class=\"line\"><a id=\"l00226\" name=\"l00226\"></a><span class=\"lineno\"> 226</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Geometry</a>(GeometryTypes::vertex, corners);</div>\n+<div class=\"line\"><a id=\"l00227\" name=\"l00227\"></a><span class=\"lineno\"> 227</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00228\" name=\"l00228\"></a><span class=\"lineno\"> 228</span> </div>\n+<div class=\"line\"><a id=\"l00229\" name=\"l00229\"></a><span class=\"lineno\"> 229</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00230\" name=\"l00230\"></a><span class=\"lineno\"> 230</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00231\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00231\" name=\"l00231\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01295.html#ae27f8e44edd23ddad1f5f9782ed50f58\"> 231</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, dimension>::</a></div>\n+<div class=\"line\"><a id=\"l00232\" name=\"l00232\"></a><span class=\"lineno\"> 232</span><a class=\"code hl_class\" href=\"a01283.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00233\" name=\"l00233\"></a><span class=\"lineno\"> 233</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00234\" name=\"l00234\"></a><span class=\"lineno\"> 234</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index();</div>\n+<div class=\"line\"><a id=\"l00235\" name=\"l00235\"></a><span class=\"lineno\"> 235</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00236\" name=\"l00236\"></a><span class=\"lineno\"> 236</span> </div>\n+<div class=\"line\"><a id=\"l00237\" name=\"l00237\"></a><span class=\"lineno\"> 237</span> <span class=\"comment\">// elements</span></div>\n+<div class=\"line\"><a id=\"l00238\" name=\"l00238\"></a><span class=\"lineno\"> 238</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00239\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00239\" name=\"l00239\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html\"> 239</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, 0></div>\n+<div class=\"line\"><a id=\"l00240\" name=\"l00240\"></a><span class=\"lineno\"> 240</span> {</div>\n+<div class=\"line\"><a id=\"l00241\" name=\"l00241\"></a><span class=\"lineno\"> 241</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00242\" name=\"l00242\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\"> 242</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00243\" name=\"l00243\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\"> 243</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">Refinement::IndexVector</a> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a>;</div>\n+<div class=\"line\"><a id=\"l00244\" name=\"l00244\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\"> 244</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_typedef\" href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">Refinement::CoordVector</a> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a>;</div>\n+<div class=\"line\"><a id=\"l00245\" name=\"l00245\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\"> 245</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> Refinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::Geometry</a> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a>;</div>\n <div class=\"line\"><a id=\"l00246\" name=\"l00246\"></a><span class=\"lineno\"> 246</span> </div>\n-<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <span class=\"keywordflow\">return</span> x;</div>\n-<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00260\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\"> 260</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> <a class=\"code hl_function\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">integrationElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"> 261</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"> 262</span> <span class=\"keywordflow\">return</span> MatrixHelper::sqrtDetAAT(<a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>));</div>\n-<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"> 263</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00247\" name=\"l00247\"></a><span class=\"lineno\"> 247</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00248\" name=\"l00248\"></a><span class=\"lineno\"> 248</span> </div>\n+<div class=\"line\"><a id=\"l00249\" name=\"l00249\"></a><span class=\"lineno\"> 249</span> <span class=\"keywordtype\">void</span> increment();</div>\n+<div class=\"line\"><a id=\"l00250\" name=\"l00250\"></a><span class=\"lineno\"> 250</span> </div>\n+<div class=\"line\"><a id=\"l00251\" name=\"l00251\"></a><span class=\"lineno\"> 251</span> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a> vertexIndices() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00252\" name=\"l00252\"></a><span class=\"lineno\"> 252</span> <span class=\"keywordtype\">int</span> index() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00253\" name=\"l00253\"></a><span class=\"lineno\"> 253</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> coords() <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00254\" name=\"l00254\"></a><span class=\"lineno\"> 254</span> </div>\n+<div class=\"line\"><a id=\"l00255\" name=\"l00255\"></a><span class=\"lineno\"> 255</span> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a> geometry () <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00256\" name=\"l00256\"></a><span class=\"lineno\"> 256</span> </div>\n+<div class=\"line\"><a id=\"l00257\" name=\"l00257\"></a><span class=\"lineno\"> 257</span> <span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00258\" name=\"l00258\"></a><span class=\"lineno\"> 258</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> global(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">CoordVector</a> &local) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00259\" name=\"l00259\"></a><span class=\"lineno\"> 259</span> </div>\n+<div class=\"line\"><a id=\"l00260\" name=\"l00260\"></a><span class=\"lineno\"> 260</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00261\" name=\"l00261\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\"> 261</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01331.html\">Refinement::BackendRefinement</a> <a class=\"code hl_typedef\" href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\">BackendRefinement</a>;</div>\n+<div class=\"line\"><a id=\"l00262\" name=\"l00262\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\"> 262</a></span> <span class=\"keyword\">typedef</span> <span class=\"keyword\">typename</span> BackendRefinement::template <a class=\"code hl_struct\" href=\"a01119.html\">Codim<0>::SubEntityIterator</a> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a>;</div>\n+<div class=\"line\"><a id=\"l00263\" name=\"l00263\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a54d21ef9b531b5542ac81dac54d3de48\"> 263</a></span> <span class=\"keyword\">constexpr</span> <span class=\"keyword\">static</span> <span class=\"keywordtype\">int</span> nKuhnSimplices = 3;</div>\n <div class=\"line\"><a id=\"l00264\" name=\"l00264\"></a><span class=\"lineno\"> 264</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00276\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\"> 276</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a> (Impl::ConvergenceOptions<ctype> opts = {}) <span class=\"keyword\">const</span></div>\n-<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> {</div>\n-<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol0 = <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>(), 1));</div>\n-<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">affine</a>())</div>\n-<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> <span class=\"keywordflow\">return</span> vol0;</div>\n-<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> </div>\n-<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> <span class=\"keyword\">using </span>std::abs;</div>\n-<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> p = 2; p < opts.maxIt; ++p) {</div>\n-<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol1 = <a class=\"code hl_function\" href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">volume</a>(<a class=\"code hl_class\" href=\"a01191.html\">QuadratureRules<ctype, mydimension>::rule</a>(<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>(), p));</div>\n-<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"> 285</span> <span class=\"keywordflow\">if</span> (abs(vol1 - vol0) < opts.absTol)</div>\n-<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span> <span class=\"keywordflow\">return</span> vol1;</div>\n-<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> </div>\n-<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> vol0 = vol1;</div>\n-<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> }</div>\n-<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> <span class=\"keywordflow\">return</span> vol0;</div>\n-<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00294\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\"> 294</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> <a class=\"code hl_function\" href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\">volume</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01183.html\">QuadratureRule<ctype, mydimension></a>& quadRule)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <a class=\"code hl_typedef\" href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Volume</a> vol(0);</div>\n-<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keywordflow\">for</span> (<span class=\"keyword\">const</span> <span class=\"keyword\">auto</span>& qp : quadRule)</div>\n-<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"> 298</span> vol += <a class=\"code hl_function\" href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">integrationElement</a>(qp.position()) * qp.weight();</div>\n-<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span> <span class=\"keywordflow\">return</span> vol;</div>\n-<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00307\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\"> 307</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> <a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">thread_local</span> std::vector<typename LocalBasisTraits::JacobianType> shapeJacobians;</div>\n-<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a>().evaluateJacobian(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>, shapeJacobians);</div>\n-<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"> 311</span> assert(shapeJacobians.size() == vertices_.size());</div>\n-<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span> </div>\n-<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span> <a class=\"code hl_typedef\" href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Jacobian</a> out(0);</div>\n-<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> <span class=\"keywordflow\">for</span> (std::size_t i = 0; i < shapeJacobians.size(); ++i) {</div>\n-<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> j = 0; j < Jacobian::rows; ++j) {</div>\n-<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> shapeJacobians[i].umtv(vertices_[i][j], out[j]);</div>\n-<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> }</div>\n-<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> }</div>\n-<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"> 319</span> <span class=\"keywordflow\">return</span> out;</div>\n-<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span> </div>\n+<div class=\"line\"><a id=\"l00265\" name=\"l00265\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\"> 265</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\">nIntervals_</a>;</div>\n+<div class=\"line\"><a id=\"l00266\" name=\"l00266\"></a><span class=\"lineno\"> 266</span> </div>\n+<div class=\"line\"><a id=\"l00267\" name=\"l00267\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\"> 267</a></span> <span class=\"keywordtype\">int</span> <a class=\"code hl_variable\" href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\">kuhnIndex</a>;</div>\n+<div class=\"line\"><a id=\"l00268\" name=\"l00268\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\"> 268</a></span> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\">backend</a>;</div>\n+<div class=\"line\"><a id=\"l00269\" name=\"l00269\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\"> 269</a></span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01299.html#a7058338351f189fba61296f63dd58878\">BackendIterator</a> <a class=\"code hl_variable\" href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\">backendEnd</a>;</div>\n+<div class=\"line\"><a id=\"l00270\" name=\"l00270\"></a><span class=\"lineno\"> 270</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00271\" name=\"l00271\"></a><span class=\"lineno\"> 271</span> </div>\n+<div class=\"line\"><a id=\"l00272\" name=\"l00272\"></a><span class=\"lineno\"> 272</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"foldopen\" id=\"foldopen00273\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00273\" name=\"l00273\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#ac79cdfdd4e19b7cd87d91580df6b157f\"> 273</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00274\" name=\"l00274\"></a><span class=\"lineno\"> 274</span><a class=\"code hl_class\" href=\"a01283.html\"> RefinementIteratorSpecial</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00275\" name=\"l00275\"></a><span class=\"lineno\"> 275</span> : nIntervals_(nIntervals), kuhnIndex(0),</div>\n+<div class=\"line\"><a id=\"l00276\" name=\"l00276\"></a><span class=\"lineno\"> 276</span> backend(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eBegin(nIntervals_)),</div>\n+<div class=\"line\"><a id=\"l00277\" name=\"l00277\"></a><span class=\"lineno\"> 277</span> backendEnd(<a class=\"code hl_class\" href=\"a01331.html\">BackendRefinement</a>::eEnd(nIntervals_))</div>\n+<div class=\"line\"><a id=\"l00278\" name=\"l00278\"></a><span class=\"lineno\"> 278</span> {</div>\n+<div class=\"line\"><a id=\"l00279\" name=\"l00279\"></a><span class=\"lineno\"> 279</span> <span class=\"keywordflow\">if</span> (end)</div>\n+<div class=\"line\"><a id=\"l00280\" name=\"l00280\"></a><span class=\"lineno\"> 280</span> kuhnIndex = nKuhnSimplices;</div>\n+<div class=\"line\"><a id=\"l00281\" name=\"l00281\"></a><span class=\"lineno\"> 281</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00282\" name=\"l00282\"></a><span class=\"lineno\"> 282</span> </div>\n+<div class=\"line\"><a id=\"l00283\" name=\"l00283\"></a><span class=\"lineno\"> 283</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00284\" name=\"l00284\"></a><span class=\"lineno\"> 284</span> <span class=\"keywordtype\">void</span></div>\n+<div class=\"foldopen\" id=\"foldopen00285\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00285\" name=\"l00285\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a7a66381e6e64c6d1c006bac7108faa6a\"> 285</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00286\" name=\"l00286\"></a><span class=\"lineno\"> 286</span><a class=\"code hl_class\" href=\"a01283.html\"> increment</a>()</div>\n+<div class=\"line\"><a id=\"l00287\" name=\"l00287\"></a><span class=\"lineno\"> 287</span> {</div>\n+<div class=\"line\"><a id=\"l00288\" name=\"l00288\"></a><span class=\"lineno\"> 288</span> ++backend;</div>\n+<div class=\"line\"><a id=\"l00289\" name=\"l00289\"></a><span class=\"lineno\"> 289</span> <span class=\"keywordflow\">if</span> (backend == backendEnd)</div>\n+<div class=\"line\"><a id=\"l00290\" name=\"l00290\"></a><span class=\"lineno\"> 290</span> {</div>\n+<div class=\"line\"><a id=\"l00291\" name=\"l00291\"></a><span class=\"lineno\"> 291</span> backend = BackendRefinement::eBegin(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00292\" name=\"l00292\"></a><span class=\"lineno\"> 292</span> ++kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00293\" name=\"l00293\"></a><span class=\"lineno\"> 293</span> }</div>\n+<div class=\"line\"><a id=\"l00294\" name=\"l00294\"></a><span class=\"lineno\"> 294</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00295\" name=\"l00295\"></a><span class=\"lineno\"> 295</span> </div>\n+<div class=\"line\"><a id=\"l00296\" name=\"l00296\"></a><span class=\"lineno\"> 296</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00297\" name=\"l00297\"></a><span class=\"lineno\"> 297</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::IndexVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00298\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00298\" name=\"l00298\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8597e5c5498764d732fa6043b23e6e73\"> 298</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00299\" name=\"l00299\"></a><span class=\"lineno\"> 299</span><a class=\"code hl_class\" href=\"a01283.html\"> vertexIndices</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00300\" name=\"l00300\"></a><span class=\"lineno\"> 300</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00301\" name=\"l00301\"></a><span class=\"lineno\"> 301</span> <a class=\"code hl_typedef\" href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">IndexVector</a> indices = backend.vertexIndices();</div>\n+<div class=\"line\"><a id=\"l00302\" name=\"l00302\"></a><span class=\"lineno\"> 302</span> </div>\n+<div class=\"line\"><a id=\"l00303\" name=\"l00303\"></a><span class=\"lineno\"> 303</span> <span class=\"keywordtype\">int</span> base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);</div>\n+<div class=\"line\"><a id=\"l00304\" name=\"l00304\"></a><span class=\"lineno\"> 304</span> indices += base;</div>\n+<div class=\"line\"><a id=\"l00305\" name=\"l00305\"></a><span class=\"lineno\"> 305</span> </div>\n+<div class=\"line\"><a id=\"l00306\" name=\"l00306\"></a><span class=\"lineno\"> 306</span> <span class=\"keywordflow\">return</span> indices;</div>\n+<div class=\"line\"><a id=\"l00307\" name=\"l00307\"></a><span class=\"lineno\"> 307</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00308\" name=\"l00308\"></a><span class=\"lineno\"> 308</span> </div>\n+<div class=\"line\"><a id=\"l00309\" name=\"l00309\"></a><span class=\"lineno\"> 309</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00310\" name=\"l00310\"></a><span class=\"lineno\"> 310</span> <span class=\"keywordtype\">int</span></div>\n+<div class=\"foldopen\" id=\"foldopen00311\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00311\" name=\"l00311\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#acc62f6998f7b9d431c99b7f3ef71ddba\"> 311</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00312\" name=\"l00312\"></a><span class=\"lineno\"> 312</span><a class=\"code hl_class\" href=\"a01283.html\"> index</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00313\" name=\"l00313\"></a><span class=\"lineno\"> 313</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00314\" name=\"l00314\"></a><span class=\"lineno\"> 314</span> <span class=\"keywordflow\">return</span> kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index();</div>\n+<div class=\"line\"><a id=\"l00315\" name=\"l00315\"></a><span class=\"lineno\"> 315</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00316\" name=\"l00316\"></a><span class=\"lineno\"> 316</span> </div>\n+<div class=\"line\"><a id=\"l00317\" name=\"l00317\"></a><span class=\"lineno\"> 317</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00318\" name=\"l00318\"></a><span class=\"lineno\"> 318</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"foldopen\" id=\"foldopen00319\" data-start=\"{\" data-end=\"}\">\n+<div class=\"line\"><a id=\"l00319\" name=\"l00319\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#af215e11b3aed27eb92cd9aba92208ac1\"> 319</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00320\" name=\"l00320\"></a><span class=\"lineno\"> 320</span><a class=\"code hl_class\" href=\"a01283.html\"> coords</a>()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00321\" name=\"l00321\"></a><span class=\"lineno\"> 321</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00322\" name=\"l00322\"></a><span class=\"lineno\"> 322</span> <span class=\"keywordflow\">return</span> global(backend.coords());</div>\n+<div class=\"line\"><a id=\"l00323\" name=\"l00323\"></a><span class=\"lineno\"> 323</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00324\" name=\"l00324\"></a><span class=\"lineno\"> 324</span> </div>\n+<div class=\"line\"><a id=\"l00325\" name=\"l00325\"></a><span class=\"lineno\"> 325</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00326\" name=\"l00326\"></a><span class=\"lineno\"> 326</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::Geometry</a></div>\n <div class=\"foldopen\" id=\"foldopen00327\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\"> 327</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">JacobianTransposed</a> <a class=\"code hl_function\" href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">jacobianTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>).transposed();</div>\n-<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00339\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\"> 339</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> <a class=\"code hl_function\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">jacobianInverse</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span> <a class=\"code hl_typedef\" href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">JacobianInverse</a> out;</div>\n-<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span> MatrixHelper::leftInvA(<a class=\"code hl_function\" href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">jacobian</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>), out);</div>\n-<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"keywordflow\">return</span> out;</div>\n-<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00353\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\"> 353</a></span> <a class=\"code hl_typedef\" href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">JacobianInverseTransposed</a> <a class=\"code hl_function\" href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\">jacobianInverseTransposed</a> (<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a>& <a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>)<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"> 355</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">jacobianInverse</a>(<a class=\"code hl_function\" href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">local</a>).transposed();</div>\n-<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"> 356</span> }</div>\n-</div>\n+<div class=\"line\"><a id=\"l00327\" name=\"l00327\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01299.html#a8899299c5b15bbea83dc609ade9e6a56\"> 327</a></span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::geometry</a> ()<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00328\" name=\"l00328\"></a><span class=\"lineno\"> 328</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00329\" name=\"l00329\"></a><span class=\"lineno\"> 329</span> <span class=\"keyword\">const</span> <span class=\"keyword\">typename</span> BackendIterator::Geometry &bgeo =</div>\n+<div class=\"line\"><a id=\"l00330\" name=\"l00330\"></a><span class=\"lineno\"> 330</span> backend.geometry();</div>\n+<div class=\"line\"><a id=\"l00331\" name=\"l00331\"></a><span class=\"lineno\"> 331</span> std::vector<CoordVector> corners(dimension+1);</div>\n+<div class=\"line\"><a id=\"l00332\" name=\"l00332\"></a><span class=\"lineno\"> 332</span> <span class=\"keywordflow\">for</span>(<span class=\"keywordtype\">int</span> i = 0; i <= dimension; ++i)</div>\n+<div class=\"line\"><a id=\"l00333\" name=\"l00333\"></a><span class=\"lineno\"> 333</span> corners[i] = global(bgeo.corner(i));</div>\n+<div class=\"line\"><a id=\"l00334\" name=\"l00334\"></a><span class=\"lineno\"> 334</span> </div>\n+<div class=\"line\"><a id=\"l00335\" name=\"l00335\"></a><span class=\"lineno\"> 335</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_typedef\" href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Geometry</a>(bgeo.type(), corners);</div>\n+<div class=\"line\"><a id=\"l00336\" name=\"l00336\"></a><span class=\"lineno\"> 336</span> }</div>\n+</div>\n+<div class=\"line\"><a id=\"l00337\" name=\"l00337\"></a><span class=\"lineno\"> 337</span> </div>\n+<div class=\"line\"><a id=\"l00338\" name=\"l00338\"></a><span class=\"lineno\"> 338</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00339\" name=\"l00339\"></a><span class=\"lineno\"> 339</span> <span class=\"keyword\">typename</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::CoordVector</a></div>\n+<div class=\"line\"><a id=\"l00340\" name=\"l00340\"></a><span class=\"lineno\"> 340</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial<dimension, CoordType, 0>::</a></div>\n+<div class=\"line\"><a id=\"l00341\" name=\"l00341\"></a><span class=\"lineno\"> 341</span><a class=\"code hl_class\" href=\"a01283.html\"> global</a>(<span class=\"keyword\">const</span> CoordVector &local)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00342\" name=\"l00342\"></a><span class=\"lineno\"> 342</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00343\" name=\"l00343\"></a><span class=\"lineno\"> 343</span> <span class=\"comment\">// while the kuhnIndex runs from 0,1,2 the actual permutations we need are 0,2,3</span></div>\n+<div class=\"line\"><a id=\"l00344\" name=\"l00344\"></a><span class=\"lineno\"> 344</span> <span class=\"keywordflow\">return</span> <a class=\"code hl_function\" href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">transformCoordinate</a>(referenceToKuhn(local, getPermutation<dimension>((kuhnIndex+2)%4)));</div>\n+<div class=\"line\"><a id=\"l00345\" name=\"l00345\"></a><span class=\"lineno\"> 345</span> }</div>\n+<div class=\"line\"><a id=\"l00346\" name=\"l00346\"></a><span class=\"lineno\"> 346</span> </div>\n+<div class=\"line\"><a id=\"l00347\" name=\"l00347\"></a><span class=\"lineno\"> 347</span> <span class=\"comment\">// common</span></div>\n+<div class=\"line\"><a id=\"l00348\" name=\"l00348\"></a><span class=\"lineno\"> 348</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00349\" name=\"l00349\"></a><span class=\"lineno\"> 349</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"foldopen\" id=\"foldopen00350\" data-start=\"{\" data-end=\"};\">\n+<div class=\"line\"><a id=\"l00350\" name=\"l00350\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html\"> 350</a></span> <span class=\"keyword\">class </span><a class=\"code hl_class\" href=\"a01287.html\">RefinementImp</a><dimension, CoordType>::<a class=\"code hl_struct\" href=\"a01291.html\">Codim</a><codimension>::SubEntityIterator</div>\n+<div class=\"line\"><a id=\"l00351\" name=\"l00351\"></a><span class=\"lineno\"> 351</span> : <span class=\"keyword\">public</span> ForwardIteratorFacade<typename RefinementImp<dimension, CoordType>::template Codim<codimension>::SubEntityIterator, int>,</div>\n+<div class=\"line\"><a id=\"l00352\" name=\"l00352\"></a><span class=\"lineno\"> 352</span> <span class=\"keyword\">public</span> <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension></div>\n+<div class=\"line\"><a id=\"l00353\" name=\"l00353\"></a><span class=\"lineno\"> 353</span> {</div>\n+<div class=\"line\"><a id=\"l00354\" name=\"l00354\"></a><span class=\"lineno\"> 354</span> <span class=\"keyword\">public</span>:</div>\n+<div class=\"line\"><a id=\"l00355\" name=\"l00355\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\"> 355</a></span> <span class=\"keyword\">typedef</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType></a> <a class=\"code hl_typedef\" href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\">Refinement</a>;</div>\n+<div class=\"line\"><a id=\"l00356\" name=\"l00356\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\"> 356</a></span> <span class=\"keyword\">typedef</span> SubEntityIterator <a class=\"code hl_typedef\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">This</a>;</div>\n <div class=\"line\"><a id=\"l00357\" name=\"l00357\"></a><span class=\"lineno\"> 357</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00359\" data-start=\"{\" data-end=\"};\">\n-<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\"> 359</a></span> <span class=\"keyword\">friend</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> <a class=\"code hl_friend\" href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\">referenceElement</a> (<span class=\"keyword\">const</span> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a>& geometry)</div>\n-<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"> 360</span> {</div>\n-<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keywordflow\">return</span> geometry.refElement_;</div>\n-<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00365\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\"> 365</a></span> <span class=\"keyword\">const</span> LocalFiniteElement& <a class=\"code hl_function\" href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\">finiteElement</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keywordflow\">return</span> localFE_;</div>\n-<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00371\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\"> 371</a></span> <span class=\"keyword\">const</span> std::vector<GlobalCoordinate>& <a class=\"code hl_function\" href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\">coefficients</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> <span class=\"keywordflow\">return</span> vertices_;</div>\n-<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> </div>\n-<div class=\"foldopen\" id=\"foldopen00377\" data-start=\"{\" data-end=\"}\">\n-<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\"> 377</a></span> <span class=\"keyword\">const</span> LocalBasis& <a class=\"code hl_function\" href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">localBasis</a> ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span> <span class=\"keywordflow\">return</span> localFE_.localBasis();</div>\n-<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> }</div>\n-</div>\n-<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> </div>\n-<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"keyword\">private</span>:</div>\n+<div class=\"line\"><a id=\"l00358\" name=\"l00358\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\"> 358</a></span> <a class=\"code hl_function\" href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\">SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end = <span class=\"keyword\">false</span>);</div>\n+<div class=\"line\"><a id=\"l00359\" name=\"l00359\"></a><span class=\"lineno\"> 359</span> </div>\n+<div class=\"line\"><a id=\"l00360\" name=\"l00360\"></a><span class=\"lineno\"><a class=\"line\" href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\"> 360</a></span> <span class=\"keywordtype\">bool</span> <a class=\"code hl_function\" href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\">equals</a>(<span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">This</a> &other) <span class=\"keyword\">const</span>;</div>\n+<div class=\"line\"><a id=\"l00361\" name=\"l00361\"></a><span class=\"lineno\"> 361</span> <span class=\"keyword\">protected</span>:</div>\n+<div class=\"line\"><a id=\"l00362\" name=\"l00362\"></a><span class=\"lineno\"> 362</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, codimension>::kuhnIndex;</div>\n+<div class=\"line\"><a id=\"l00363\" name=\"l00363\"></a><span class=\"lineno\"> 363</span> <span class=\"keyword\">using </span><a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><<a class=\"code hl_variable\" href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">dimension</a>, CoordType, codimension>::backend;</div>\n+<div class=\"line\"><a id=\"l00364\" name=\"l00364\"></a><span class=\"lineno\"> 364</span> };</div>\n+</div>\n+<div class=\"line\"><a id=\"l00365\" name=\"l00365\"></a><span class=\"lineno\"> 365</span> </div>\n+<div class=\"line\"><a id=\"l00366\" name=\"l00366\"></a><span class=\"lineno\"> 366</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00367\" name=\"l00367\"></a><span class=\"lineno\"> 367</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00368\" name=\"l00368\"></a><span class=\"lineno\"> 368</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00369\" name=\"l00369\"></a><span class=\"lineno\"> 369</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00370\" name=\"l00370\"></a><span class=\"lineno\"> 370</span><a class=\"code hl_class\" href=\"a01287.html\"> SubEntityIterator</a>(<span class=\"keywordtype\">int</span> nIntervals, <span class=\"keywordtype\">bool</span> end)</div>\n+<div class=\"line\"><a id=\"l00371\" name=\"l00371\"></a><span class=\"lineno\"> 371</span> : <a class=\"code hl_class\" href=\"a01283.html\">RefinementIteratorSpecial</a><dimension, CoordType, codimension>(nIntervals, end)</div>\n+<div class=\"line\"><a id=\"l00372\" name=\"l00372\"></a><span class=\"lineno\"> 372</span> {}</div>\n+<div class=\"line\"><a id=\"l00373\" name=\"l00373\"></a><span class=\"lineno\"> 373</span> </div>\n+<div class=\"line\"><a id=\"l00374\" name=\"l00374\"></a><span class=\"lineno\"> 374</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> dimension, <span class=\"keyword\">class</span> CoordType></div>\n+<div class=\"line\"><a id=\"l00375\" name=\"l00375\"></a><span class=\"lineno\"> 375</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">int</span> codimension></div>\n+<div class=\"line\"><a id=\"l00376\" name=\"l00376\"></a><span class=\"lineno\"> 376</span> <span class=\"keywordtype\">bool</span></div>\n+<div class=\"line\"><a id=\"l00377\" name=\"l00377\"></a><span class=\"lineno\"> 377</span> <a class=\"code hl_class\" href=\"a01287.html\">RefinementImp<dimension, CoordType>::Codim<codimension>::SubEntityIterator::</a></div>\n+<div class=\"line\"><a id=\"l00378\" name=\"l00378\"></a><span class=\"lineno\"> 378</span><a class=\"code hl_class\" href=\"a01287.html\"> equals</a>(<span class=\"keyword\">const</span> This &other)<span class=\"keyword\"> const</span></div>\n+<div class=\"line\"><a id=\"l00379\" name=\"l00379\"></a><span class=\"lineno\"> 379</span><span class=\"keyword\"> </span>{</div>\n+<div class=\"line\"><a id=\"l00380\" name=\"l00380\"></a><span class=\"lineno\"> 380</span> <span class=\"keywordflow\">return</span> ((kuhnIndex == other.kuhnIndex) && (backend == other.backend));</div>\n+<div class=\"line\"><a id=\"l00381\" name=\"l00381\"></a><span class=\"lineno\"> 381</span> }</div>\n+<div class=\"line\"><a id=\"l00382\" name=\"l00382\"></a><span class=\"lineno\"> 382</span><span class=\"preprocessor\">#endif</span></div>\n <div class=\"line\"><a id=\"l00383\" name=\"l00383\"></a><span class=\"lineno\"> 383</span> </div>\n-<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> <span class=\"keywordtype\">bool</span> affineImpl ()<span class=\"keyword\"> const</span></div>\n-<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span><span class=\"keyword\"> </span>{</div>\n-<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> == 0)</div>\n-<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"comment\">// point geometries are always affine mappings</span></div>\n-<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"keywordflow\">else</span> {</div>\n-<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">order</a>() > 1)</div>\n-<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// higher-order parametrizations are by definition not affine</span></div>\n-<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n-<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> <span class=\"keywordflow\">if</span> <span class=\"keyword\">constexpr</span>(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> == 1)</div>\n-<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span> <span class=\"comment\">// linear line geometries are affine mappings</span></div>\n-<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keywordflow\">else</span> {</div>\n-<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> <span class=\"keywordflow\">if</span> (<a class=\"code hl_function\" href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">type</a>().<a class=\"code hl_function\" href=\"a01367.html#af04ef531b52014e4e382722b54102163\">isSimplex</a>())</div>\n-<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> <span class=\"comment\">// linear simplex geometries are affine mappings</span></div>\n-<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> </div>\n-<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> <span class=\"comment\">// multi-linear mappings on non-simplex geometries might be affine</span></div>\n-<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> <span class=\"comment\">// as well. This is tested explicitly for all vertices by constructing</span></div>\n-<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> <span class=\"comment\">// an affine mapping from dim+1 affine-independent corners and evaluating</span></div>\n-<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> <span class=\"comment\">// at the other corners.</span></div>\n-<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <span class=\"keyword\">auto</span> refSimplex = referenceElement<ctype,mydimension>(GeometryTypes::simplex(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n-<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> <span class=\"keyword\">auto</span> simplexIndices = Dune::range(refSimplex.size(<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>));</div>\n-<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span> <span class=\"keyword\">auto</span> simplexCorners = Dune::transformedRangeView(simplexIndices,</div>\n-<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> [&](<span class=\"keywordtype\">int</span> i) { <span class=\"keywordflow\">return</span> this-><a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(refSimplex.position(i,<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>)); });</div>\n-<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> AffineGeometry<ctype,mydimension,coorddimension> affineGeo(refSimplex,simplexCorners);</div>\n-<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span> <span class=\"keyword\">using </span>std::sqrt;</div>\n-<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> <span class=\"keyword\">const</span> <a class=\"code hl_typedef\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> tol = sqrt(std::numeric_limits<ctype>::epsilon());</div>\n-<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span> <span class=\"keywordflow\">for</span> (<span class=\"keywordtype\">int</span> i = 0; i < <a class=\"code hl_function\" href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">corners</a>(); ++i) {</div>\n-<div class=\"line\"><a id=\"l00413\" name=\"l00413\"></a><span class=\"lineno\"> 413</span> <span class=\"keyword\">const</span> <span class=\"keyword\">auto</span> <a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a> = refElement_.position(i,<a class=\"code hl_variable\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a>);</div>\n-<div class=\"line\"><a id=\"l00414\" name=\"l00414\"></a><span class=\"lineno\"> 414</span> <span class=\"keywordflow\">if</span> ((affineGeo.global(<a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a>) - <a class=\"code hl_function\" href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">global</a>(<a class=\"code hl_function\" href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">corner</a>)).two_norm() > tol)</div>\n-<div class=\"line\"><a id=\"l00415\" name=\"l00415\"></a><span class=\"lineno\"> 415</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">false</span>;</div>\n-<div class=\"line\"><a id=\"l00416\" name=\"l00416\"></a><span class=\"lineno\"> 416</span> }</div>\n-<div class=\"line\"><a id=\"l00417\" name=\"l00417\"></a><span class=\"lineno\"> 417</span> <span class=\"keywordflow\">return</span> <span class=\"keyword\">true</span>;</div>\n-<div class=\"line\"><a id=\"l00418\" name=\"l00418\"></a><span class=\"lineno\"> 418</span> }</div>\n-<div class=\"line\"><a id=\"l00419\" name=\"l00419\"></a><span class=\"lineno\"> 419</span> }</div>\n-<div class=\"line\"><a id=\"l00420\" name=\"l00420\"></a><span class=\"lineno\"> 420</span> }</div>\n-<div class=\"line\"><a id=\"l00421\" name=\"l00421\"></a><span class=\"lineno\"> 421</span> </div>\n-<div class=\"line\"><a id=\"l00422\" name=\"l00422\"></a><span class=\"lineno\"> 422</span><span class=\"keyword\">private</span>:</div>\n-<div class=\"line\"><a id=\"l00424\" name=\"l00424\"></a><span class=\"lineno\"> 424</span> <a class=\"code hl_typedef\" href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">ReferenceElement</a> refElement_{};</div>\n-<div class=\"line\"><a id=\"l00425\" name=\"l00425\"></a><span class=\"lineno\"> 425</span> </div>\n-<div class=\"line\"><a id=\"l00427\" name=\"l00427\"></a><span class=\"lineno\"> 427</span> LocalFiniteElement localFE_{};</div>\n-<div class=\"line\"><a id=\"l00428\" name=\"l00428\"></a><span class=\"lineno\"> 428</span> </div>\n-<div class=\"line\"><a id=\"l00430\" name=\"l00430\"></a><span class=\"lineno\"> 430</span> std::vector<GlobalCoordinate> vertices_{};</div>\n-<div class=\"line\"><a id=\"l00431\" name=\"l00431\"></a><span class=\"lineno\"> 431</span> </div>\n-<div class=\"line\"><a id=\"l00432\" name=\"l00432\"></a><span class=\"lineno\"> 432</span> <span class=\"keyword\">mutable</span> std::optional<bool> affine_ = std::nullopt;</div>\n-<div class=\"line\"><a id=\"l00433\" name=\"l00433\"></a><span class=\"lineno\"> 433</span>};</div>\n-</div>\n-<div class=\"line\"><a id=\"l00434\" name=\"l00434\"></a><span class=\"lineno\"> 434</span> </div>\n-<div class=\"line\"><a id=\"l00435\" name=\"l00435\"></a><span class=\"lineno\"> 435</span><span class=\"keyword\">namespace </span>Impl {</div>\n-<div class=\"line\"><a id=\"l00436\" name=\"l00436\"></a><span class=\"lineno\"> 436</span> </div>\n-<div class=\"line\"><a id=\"l00437\" name=\"l00437\"></a><span class=\"lineno\"> 437</span><span class=\"comment\">// extract the LocalCoordinate type from a LocalFiniteElement</span></div>\n-<div class=\"line\"><a id=\"l00438\" name=\"l00438\"></a><span class=\"lineno\"> 438</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE></div>\n-<div class=\"line\"><a id=\"l00439\" name=\"l00439\"></a><span class=\"lineno\"> 439</span><span class=\"keyword\">using </span>LocalCoordinate_t</div>\n-<div class=\"line\"><a id=\"l00440\" name=\"l00440\"></a><span class=\"lineno\"> 440</span> = FieldVector<<span class=\"keyword\">typename</span> LFE::Traits::LocalBasisType::Traits::DomainFieldType,</div>\n-<div class=\"line\"><a id=\"l00441\" name=\"l00441\"></a><span class=\"lineno\"> 441</span> LFE::Traits::LocalBasisType::Traits::dimDomain>;</div>\n-<div class=\"line\"><a id=\"l00442\" name=\"l00442\"></a><span class=\"lineno\"> 442</span> </div>\n-<div class=\"line\"><a id=\"l00443\" name=\"l00443\"></a><span class=\"lineno\"> 443</span>} <span class=\"comment\">// end namespace Impl</span></div>\n-<div class=\"line\"><a id=\"l00444\" name=\"l00444\"></a><span class=\"lineno\"> 444</span> </div>\n-<div class=\"line\"><a id=\"l00445\" name=\"l00445\"></a><span class=\"lineno\"> 445</span> </div>\n-<div class=\"line\"><a id=\"l00446\" name=\"l00446\"></a><span class=\"lineno\"> 446</span><span class=\"comment\">// deduction guides</span></div>\n-<div class=\"line\"><a id=\"l00447\" name=\"l00447\"></a><span class=\"lineno\"> 447</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> I, <span class=\"keyword\">class</span> LFE, <span class=\"keyword\">class</span> GlobalCoordinate></div>\n-<div class=\"line\"><a id=\"l00448\" name=\"l00448\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#ab8428045fd8606c48bb01ef84398c9b7\"> 448</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement<I></a>, <span class=\"keyword\">const</span> LFE&, std::vector<GlobalCoordinate>)</div>\n-<div class=\"line\"><a id=\"l00449\" name=\"l00449\"></a><span class=\"lineno\"> 449</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, GlobalCoordinate::dimension></a>;</div>\n-<div class=\"line\"><a id=\"l00450\" name=\"l00450\"></a><span class=\"lineno\"> 450</span> </div>\n-<div class=\"line\"><a id=\"l00451\" name=\"l00451\"></a><span class=\"lineno\"> 451</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>I, <span class=\"keyword\">class </span>LFE, <span class=\"keyword\">class </span>F,</div>\n-<div class=\"line\"><a id=\"l00452\" name=\"l00452\"></a><span class=\"lineno\"> 452</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>></div>\n-<div class=\"line\"><a id=\"l00453\" name=\"l00453\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a5c32fd93843a14930083653dee620ee1\"> 453</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01091.html\">Geo::ReferenceElement<I></a>, <span class=\"keyword\">const</span> LFE&, <span class=\"keyword\">const</span> F&)</div>\n-<div class=\"line\"><a id=\"l00454\" name=\"l00454\"></a><span class=\"lineno\"> 454</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, Range::dimension></a>;</div>\n-<div class=\"line\"><a id=\"l00455\" name=\"l00455\"></a><span class=\"lineno\"> 455</span> </div>\n-<div class=\"line\"><a id=\"l00456\" name=\"l00456\"></a><span class=\"lineno\"> 456</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class</span> LFE, <span class=\"keyword\">class</span> GlobalCoordinate></div>\n-<div class=\"line\"><a id=\"l00457\" name=\"l00457\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a6515706e91a0e4a2bab9cd783a23cbd6\"> 457</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>, <span class=\"keyword\">const</span> LFE& localFE, std::vector<GlobalCoordinate>)</div>\n-<div class=\"line\"><a id=\"l00458\" name=\"l00458\"></a><span class=\"lineno\"> 458</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, GlobalCoordinate::dimension></a>;</div>\n-<div class=\"line\"><a id=\"l00459\" name=\"l00459\"></a><span class=\"lineno\"> 459</span> </div>\n-<div class=\"line\"><a id=\"l00460\" name=\"l00460\"></a><span class=\"lineno\"> 460</span><span class=\"keyword\">template</span> <<span class=\"keyword\">class </span>LFE, <span class=\"keyword\">class </span>F,</div>\n-<div class=\"line\"><a id=\"l00461\" name=\"l00461\"></a><span class=\"lineno\"> 461</span> <span class=\"keyword\">class </span>Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>></div>\n-<div class=\"line\"><a id=\"l00462\" name=\"l00462\"></a><span class=\"lineno\"><a class=\"line\" href=\"a00263.html#a800044360dc34fc6dc86a6f5aeefecfd\"> 462</a></span><a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry</a> (<a class=\"code hl_class\" href=\"a01367.html\">GeometryType</a>, <span class=\"keyword\">const</span> LFE&, <span class=\"keyword\">const</span> F&)</div>\n-<div class=\"line\"><a id=\"l00463\" name=\"l00463\"></a><span class=\"lineno\"> 463</span> -> <a class=\"code hl_class\" href=\"a01131.html\">LocalFiniteElementGeometry<LFE, Range::dimension></a>;</div>\n-<div class=\"line\"><a id=\"l00464\" name=\"l00464\"></a><span class=\"lineno\"> 464</span> </div>\n-<div class=\"line\"><a id=\"l00465\" name=\"l00465\"></a><span class=\"lineno\"> 465</span>} <span class=\"comment\">// namespace Dune</span></div>\n-<div class=\"line\"><a id=\"l00466\" name=\"l00466\"></a><span class=\"lineno\"> 466</span> </div>\n-<div class=\"line\"><a id=\"l00467\" name=\"l00467\"></a><span class=\"lineno\"> 467</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH</span></div>\n-<div class=\"ttc\" id=\"aa00170_html\"><div class=\"ttname\"><a href=\"a00170.html\">affinegeometry.hh</a></div><div class=\"ttdoc\">An implementation of the Geometry interface for affine geometries.</div></div>\n-<div class=\"ttc\" id=\"aa00173_html\"><div class=\"ttname\"><a href=\"a00173.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"line\"><a id=\"l00384\" name=\"l00384\"></a><span class=\"lineno\"> 384</span> } <span class=\"comment\">// namespace PrismTriangulation</span></div>\n+</div>\n+<div class=\"line\"><a id=\"l00385\" name=\"l00385\"></a><span class=\"lineno\"> 385</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00386\" name=\"l00386\"></a><span class=\"lineno\"> 386</span> </div>\n+<div class=\"line\"><a id=\"l00387\" name=\"l00387\"></a><span class=\"lineno\"> 387</span> <span class=\"keyword\">namespace </span>RefinementImp</div>\n+<div class=\"line\"><a id=\"l00388\" name=\"l00388\"></a><span class=\"lineno\"> 388</span> {</div>\n+<div class=\"line\"><a id=\"l00389\" name=\"l00389\"></a><span class=\"lineno\"> 389</span> <span class=\"comment\">// ///////////////////////</span></div>\n+<div class=\"line\"><a id=\"l00390\" name=\"l00390\"></a><span class=\"lineno\"> 390</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00391\" name=\"l00391\"></a><span class=\"lineno\"> 391</span> <span class=\"comment\">// The refinement traits</span></div>\n+<div class=\"line\"><a id=\"l00392\" name=\"l00392\"></a><span class=\"lineno\"> 392</span> <span class=\"comment\">//</span></div>\n+<div class=\"line\"><a id=\"l00393\" name=\"l00393\"></a><span class=\"lineno\"> 393</span> </div>\n+<div class=\"line\"><a id=\"l00394\" name=\"l00394\"></a><span class=\"lineno\"> 394</span><span class=\"preprocessor\">#ifndef DOXYGEN</span></div>\n+<div class=\"line\"><a id=\"l00395\" name=\"l00395\"></a><span class=\"lineno\"> 395</span> <span class=\"keyword\">template</span><<span class=\"keywordtype\">unsigned</span> topologyId, <span class=\"keyword\">class</span> CoordType, <span class=\"keywordtype\">unsigned</span> coerceToId></div>\n+<div class=\"line\"><a id=\"l00396\" name=\"l00396\"></a><span class=\"lineno\"> 396</span> <span class=\"keyword\">struct </span>Traits<</div>\n+<div class=\"line\"><a id=\"l00397\" name=\"l00397\"></a><span class=\"lineno\"> 397</span> topologyId, CoordType, coerceToId, 3,</div>\n+<div class=\"line\"><a id=\"l00398\" name=\"l00398\"></a><span class=\"lineno\"> 398</span> typename <a class=\"code hl_namespace\" href=\"a00262.html\">std</a>::enable_if<</div>\n+<div class=\"line\"><a id=\"l00399\" name=\"l00399\"></a><span class=\"lineno\"> 399</span> (GeometryTypes::prism.id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00400\" name=\"l00400\"></a><span class=\"lineno\"> 400</span> (topologyId >> 1) &&</div>\n+<div class=\"line\"><a id=\"l00401\" name=\"l00401\"></a><span class=\"lineno\"> 401</span> (GeometryTypes::simplex(3).id() >> 1) ==</div>\n+<div class=\"line\"><a id=\"l00402\" name=\"l00402\"></a><span class=\"lineno\"> 402</span> (coerceToId >> 1)</div>\n+<div class=\"line\"><a id=\"l00403\" name=\"l00403\"></a><span class=\"lineno\"> 403</span> >::type></div>\n+<div class=\"line\"><a id=\"l00404\" name=\"l00404\"></a><span class=\"lineno\"> 404</span> {</div>\n+<div class=\"line\"><a id=\"l00405\" name=\"l00405\"></a><span class=\"lineno\"> 405</span> <span class=\"keyword\">typedef</span> PrismTriangulation::RefinementImp<3, CoordType> Imp;</div>\n+<div class=\"line\"><a id=\"l00406\" name=\"l00406\"></a><span class=\"lineno\"> 406</span> };</div>\n+<div class=\"line\"><a id=\"l00407\" name=\"l00407\"></a><span class=\"lineno\"> 407</span><span class=\"preprocessor\">#endif</span></div>\n+<div class=\"line\"><a id=\"l00408\" name=\"l00408\"></a><span class=\"lineno\"> 408</span> </div>\n+<div class=\"line\"><a id=\"l00409\" name=\"l00409\"></a><span class=\"lineno\"> 409</span> } <span class=\"comment\">// namespace RefinementImp</span></div>\n+<div class=\"line\"><a id=\"l00410\" name=\"l00410\"></a><span class=\"lineno\"> 410</span>} <span class=\"comment\">// namespace Dune</span></div>\n+<div class=\"line\"><a id=\"l00411\" name=\"l00411\"></a><span class=\"lineno\"> 411</span> </div>\n+<div class=\"line\"><a id=\"l00412\" name=\"l00412\"></a><span class=\"lineno\"> 412</span><span class=\"preprocessor\">#endif </span><span class=\"comment\">// DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</span></div>\n <div class=\"ttc\" id=\"aa00182_html\"><div class=\"ttname\"><a href=\"a00182.html\">referenceelements.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00212_html\"><div class=\"ttname\"><a href=\"a00212.html\">quadraturerules.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00215_html\"><div class=\"ttname\"><a href=\"a00215.html\">algorithms.hh</a></div></div>\n-<div class=\"ttc\" id=\"aa00218_html\"><div class=\"ttname\"><a href=\"a00218.html\">convergence.hh</a></div></div>\n+<div class=\"ttc\" id=\"aa00227_html\"><div class=\"ttname\"><a href=\"a00227.html\">type.hh</a></div><div class=\"ttdoc\">A unique label for each type of element that can occur in a grid.</div></div>\n+<div class=\"ttc\" id=\"aa00233_html\"><div class=\"ttname\"><a href=\"a00233.html\">simplex.cc</a></div><div class=\"ttdoc\">This file contains the Refinement implementation for simplices (triangles, tetrahedrons....</div></div>\n+<div class=\"ttc\" id=\"aa00236_html\"><div class=\"ttname\"><a href=\"a00236.html\">base.cc</a></div><div class=\"ttdoc\">This file contains the parts independent of a particular Refinement implementation.</div></div>\n <div class=\"ttc\" id=\"aa00262_html\"><div class=\"ttname\"><a href=\"a00262.html\">std</a></div><div class=\"ttdoc\">STL namespace.</div></div>\n <div class=\"ttc\" id=\"aa00263_html\"><div class=\"ttname\"><a href=\"a00263.html\">Dune</a></div><div class=\"ttdef\"><b>Definition</b> affinegeometry.hh:21</div></div>\n-<div class=\"ttc\" id=\"aa01091_html\"><div class=\"ttname\"><a href=\"a01091.html\">Dune::Geo::ReferenceElement</a></div><div class=\"ttdoc\">This class provides access to geometric and topological properties of a reference element.</div><div class=\"ttdef\"><b>Definition</b> referenceelement.hh:52</div></div>\n-<div class=\"ttc\" id=\"aa01099_html\"><div class=\"ttname\"><a href=\"a01099.html\">Dune::Geo::ReferenceElements</a></div><div class=\"ttdoc\">Class providing access to the singletons of the reference elements.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01099_html_a2f4b8ff284505f4561a69404653b8e9a\"><div class=\"ttname\"><a href=\"a01099.html#a2f4b8ff284505f4561a69404653b8e9a\">Dune::Geo::ReferenceElements::ReferenceElement</a></div><div class=\"ttdeci\">typename Container::ReferenceElement ReferenceElement</div><div class=\"ttdoc\">The reference element type.</div><div class=\"ttdef\"><b>Definition</b> referenceelements.hh:146</div></div>\n-<div class=\"ttc\" id=\"aa01131_html\"><div class=\"ttname\"><a href=\"a01131.html\">Dune::LocalFiniteElementGeometry</a></div><div class=\"ttdoc\">Geometry implementation based on local-basis function parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:40</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a0d6c964e8e66dd589643d4ca77ccc880\"><div class=\"ttname\"><a href=\"a01131.html#a0d6c964e8e66dd589643d4ca77ccc880\">Dune::LocalFiniteElementGeometry::type</a></div><div class=\"ttdeci\">GeometryType type() const</div><div class=\"ttdoc\">Obtain the name of the reference element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:167</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a1452818fb76ca43b00ef4b52d6068c04\"><div class=\"ttname\"><a href=\"a01131.html#a1452818fb76ca43b00ef4b52d6068c04\">Dune::LocalFiniteElementGeometry::Volume</a></div><div class=\"ttdeci\">decltype(power(std::declval< ctype >(), mydimension)) Volume</div><div class=\"ttdoc\">type of volume</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:62</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a195b4b240336744aeb2a4d810155a0e6\"><div class=\"ttname\"><a href=\"a01131.html#a195b4b240336744aeb2a4d810155a0e6\">Dune::LocalFiniteElementGeometry::local</a></div><div class=\"ttdeci\">LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Evaluate the inverse coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:232</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a1c6e57ef5a1e911b3590c9caab666177\"><div class=\"ttname\"><a href=\"a01131.html#a1c6e57ef5a1e911b3590c9caab666177\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(const ReferenceElement &refElement, const LocalFiniteElement &localFE, std::vector< GlobalCoordinate > vertices)</div><div class=\"ttdoc\">Constructor from a vector of coefficients of the LocalBasis parametrizing the geometry.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:103</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a22ecbc5995a6bc922ea2baed57049ace\"><div class=\"ttname\"><a href=\"a01131.html#a22ecbc5995a6bc922ea2baed57049ace\">Dune::LocalFiniteElementGeometry::jacobianTransposed</a></div><div class=\"ttdeci\">JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:327</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a2ed1740a88091758438406e70a3d15c7\"><div class=\"ttname\"><a href=\"a01131.html#a2ed1740a88091758438406e70a3d15c7\">Dune::LocalFiniteElementGeometry::localBasis</a></div><div class=\"ttdeci\">const LocalBasis & localBasis() const</div><div class=\"ttdoc\">The local basis of the stored local finite-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:377</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a2ed536b3dea28cdf3f2211691a87a158\"><div class=\"ttname\"><a href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">Dune::LocalFiniteElementGeometry::ctype</a></div><div class=\"ttdeci\">typename LocalBasisTraits::DomainFieldType ctype</div><div class=\"ttdoc\">coordinate type</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:47</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a42d9b7d4546e9494a27edf41a291b92f\"><div class=\"ttname\"><a href=\"a01131.html#a42d9b7d4546e9494a27edf41a291b92f\">Dune::LocalFiniteElementGeometry::jacobianInverseTransposed</a></div><div class=\"ttdeci\">JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the transposed of the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:353</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a43ca1b7d8477948f5a8dd1baa0f2fb70\"><div class=\"ttname\"><a href=\"a01131.html#a43ca1b7d8477948f5a8dd1baa0f2fb70\">Dune::LocalFiniteElementGeometry::referenceElement</a></div><div class=\"ttdeci\">friend ReferenceElement referenceElement(const LocalFiniteElementGeometry &geometry)</div><div class=\"ttdoc\">Obtain the reference-element related to this geometry.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:359</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a49afeed9ef68a8915f1bdf589dec6797\"><div class=\"ttname\"><a href=\"a01131.html#a49afeed9ef68a8915f1bdf589dec6797\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry()=default</div><div class=\"ttdoc\">Default constructed geometry results in an empty/invalid representation.</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a4fa88743dcf37d7d6ec36a06a9610de0\"><div class=\"ttname\"><a href=\"a01131.html#a4fa88743dcf37d7d6ec36a06a9610de0\">Dune::LocalFiniteElementGeometry::affine</a></div><div class=\"ttdeci\">bool affine() const</div><div class=\"ttdoc\">Is this mapping affine? Geometries of order 1 might be affine, but it needs to be checked on non-simp...</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:159</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a5186729ad43201005ce4b60c8a7276d0\"><div class=\"ttname\"><a href=\"a01131.html#a5186729ad43201005ce4b60c8a7276d0\">Dune::LocalFiniteElementGeometry::jacobian</a></div><div class=\"ttdeci\">Jacobian jacobian(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:307</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a61bb78f1246992e619204e6b2e4a78cb\"><div class=\"ttname\"><a href=\"a01131.html#a61bb78f1246992e619204e6b2e4a78cb\">Dune::LocalFiniteElementGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image by given quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:294</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a653e7dc7eb6c544aa47a17df29111c2a\"><div class=\"ttname\"><a href=\"a01131.html#a653e7dc7eb6c544aa47a17df29111c2a\">Dune::LocalFiniteElementGeometry::coefficients</a></div><div class=\"ttdeci\">const std::vector< GlobalCoordinate > & coefficients() const</div><div class=\"ttdoc\">Obtain the coefficients of the parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:371</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a6e73d3a9800d57c845888f1b50786916\"><div class=\"ttname\"><a href=\"a01131.html#a6e73d3a9800d57c845888f1b50786916\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(GeometryType gt, Args &&... args)</div><div class=\"ttdoc\">Constructor, forwarding to the other constructors that take a reference-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:144</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a7030c1ae5fd2ce82dac489aef2e13214\"><div class=\"ttname\"><a href=\"a01131.html#a7030c1ae5fd2ce82dac489aef2e13214\">Dune::LocalFiniteElementGeometry::coorddimension</a></div><div class=\"ttdeci\">static const int coorddimension</div><div class=\"ttdoc\">coordinate dimension</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:53</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a7ba0c6f5acf2273b21b99fae79ad429e\"><div class=\"ttname\"><a href=\"a01131.html#a7ba0c6f5acf2273b21b99fae79ad429e\">Dune::LocalFiniteElementGeometry::corners</a></div><div class=\"ttdeci\">int corners() const</div><div class=\"ttdoc\">Obtain number of corners of the corresponding reference element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:173</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a84ff848a2f4c7c42b95305a3015d0806\"><div class=\"ttname\"><a href=\"a01131.html#a84ff848a2f4c7c42b95305a3015d0806\">Dune::LocalFiniteElementGeometry::center</a></div><div class=\"ttdeci\">GlobalCoordinate center() const</div><div class=\"ttdoc\">Obtain the centroid of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:186</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a86055a273860a57cd1ff802ba6ce4632\"><div class=\"ttname\"><a href=\"a01131.html#a86055a273860a57cd1ff802ba6ce4632\">Dune::LocalFiniteElementGeometry::finiteElement</a></div><div class=\"ttdeci\">const LocalFiniteElement & finiteElement() const</div><div class=\"ttdoc\">Obtain the local finite-element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:365</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a87335d7ded5fd82adef1943b00767bbf\"><div class=\"ttname\"><a href=\"a01131.html#a87335d7ded5fd82adef1943b00767bbf\">Dune::LocalFiniteElementGeometry::global</a></div><div class=\"ttdeci\">GlobalCoordinate global(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Evaluate the coordinate mapping.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:202</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_a9039712eac25ab09a2182e1cc1eff04d\"><div class=\"ttname\"><a href=\"a01131.html#a9039712eac25ab09a2182e1cc1eff04d\">Dune::LocalFiniteElementGeometry::MatrixHelper</a></div><div class=\"ttdeci\">Impl::FieldMatrixHelper< ctype > MatrixHelper</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:82</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_aa18d4b1317b4c725ce4f89f8e320336b\"><div class=\"ttname\"><a href=\"a01131.html#aa18d4b1317b4c725ce4f89f8e320336b\">Dune::LocalFiniteElementGeometry::ReferenceElement</a></div><div class=\"ttdeci\">typename ReferenceElements::ReferenceElement ReferenceElement</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:79</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_ab2650b534a5c0a6243472b7cb9bb130e\"><div class=\"ttname\"><a href=\"a01131.html#ab2650b534a5c0a6243472b7cb9bb130e\">Dune::LocalFiniteElementGeometry::corner</a></div><div class=\"ttdeci\">GlobalCoordinate corner(int i) const</div><div class=\"ttdoc\">Obtain coordinates of the i-th corner.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:179</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_ab437f7bb8a187c4a49489efd507be953\"><div class=\"ttname\"><a href=\"a01131.html#ab437f7bb8a187c4a49489efd507be953\">Dune::LocalFiniteElementGeometry::volume</a></div><div class=\"ttdeci\">Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const</div><div class=\"ttdoc\">Obtain the volume of the mapping's image.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:276</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_ab706d664eb4eafa52baa4fac612fef4e\"><div class=\"ttname\"><a href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">Dune::LocalFiniteElementGeometry::mydimension</a></div><div class=\"ttdeci\">static const int mydimension</div><div class=\"ttdoc\">geometry dimension</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:50</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_abc8f9a456a39d5f7960c0e34aef51738\"><div class=\"ttname\"><a href=\"a01131.html#abc8f9a456a39d5f7960c0e34aef51738\">Dune::LocalFiniteElementGeometry::jacobianInverse</a></div><div class=\"ttdeci\">JacobianInverse jacobianInverse(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the Jacobian's inverse.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:339</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_ac108da68d4c61953128ae9d72d3ce9f6\"><div class=\"ttname\"><a href=\"a01131.html#ac108da68d4c61953128ae9d72d3ce9f6\">Dune::LocalFiniteElementGeometry::GlobalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, coorddimension > GlobalCoordinate</div><div class=\"ttdoc\">type of global coordinates</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:59</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_acd6120cb4570ea18fff3a20f7f3b596d\"><div class=\"ttname\"><a href=\"a01131.html#acd6120cb4570ea18fff3a20f7f3b596d\">Dune::LocalFiniteElementGeometry::Jacobian</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > Jacobian</div><div class=\"ttdoc\">type of jacobian</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:65</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_ad1eff3719318d382fce6d6a64bbd8ffb\"><div class=\"ttname\"><a href=\"a01131.html#ad1eff3719318d382fce6d6a64bbd8ffb\">Dune::LocalFiniteElementGeometry::JacobianInverseTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed</div><div class=\"ttdoc\">type of jacobian inverse transposed</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:74</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_aebd585e88047806ab8129dfdf4e941de\"><div class=\"ttname\"><a href=\"a01131.html#aebd585e88047806ab8129dfdf4e941de\">Dune::LocalFiniteElementGeometry::JacobianInverse</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse</div><div class=\"ttdoc\">type of jacobian inverse</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:71</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_aec5c7b2b33a3c1c305b0b326be9de0d7\"><div class=\"ttname\"><a href=\"a01131.html#aec5c7b2b33a3c1c305b0b326be9de0d7\">Dune::LocalFiniteElementGeometry::integrationElement</a></div><div class=\"ttdeci\">ctype integrationElement(const LocalCoordinate &local) const</div><div class=\"ttdoc\">Obtain the integration element.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:260</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_af01c0e247ed64cf94f05d5c4092c3d99\"><div class=\"ttname\"><a href=\"a01131.html#af01c0e247ed64cf94f05d5c4092c3d99\">Dune::LocalFiniteElementGeometry::order</a></div><div class=\"ttdeci\">int order() const</div><div class=\"ttdoc\">Obtain the (highest) polynomial order of the parametrization.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:149</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_af8a137e7ca593617217e21fbc7909e28\"><div class=\"ttname\"><a href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">Dune::LocalFiniteElementGeometry::LocalCoordinate</a></div><div class=\"ttdeci\">FieldVector< ctype, mydimension > LocalCoordinate</div><div class=\"ttdoc\">type of local coordinates</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:56</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_afd8df635d0a58849a74609a0d0e66baa\"><div class=\"ttname\"><a href=\"a01131.html#afd8df635d0a58849a74609a0d0e66baa\">Dune::LocalFiniteElementGeometry::JacobianTransposed</a></div><div class=\"ttdeci\">FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed</div><div class=\"ttdoc\">type of jacobian transposed</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:68</div></div>\n-<div class=\"ttc\" id=\"aa01131_html_afe40e9e1bd6a32f3eaf221c3124325b1\"><div class=\"ttname\"><a href=\"a01131.html#afe40e9e1bd6a32f3eaf221c3124325b1\">Dune::LocalFiniteElementGeometry::LocalFiniteElementGeometry</a></div><div class=\"ttdeci\">LocalFiniteElementGeometry(const ReferenceElement &refElement, const LocalFiniteElement &localFE, Param &&parametrization)</div><div class=\"ttdoc\">Constructor from a local parametrization function, mapping local to (curved) global coordinates.</div><div class=\"ttdef\"><b>Definition</b> localfiniteelementgeometry.hh:128</div></div>\n-<div class=\"ttc\" id=\"aa01183_html\"><div class=\"ttname\"><a href=\"a01183.html\">Dune::QuadratureRule</a></div><div class=\"ttdoc\">Abstract base class for quadrature rules.</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:214</div></div>\n-<div class=\"ttc\" id=\"aa01191_html\"><div class=\"ttname\"><a href=\"a01191.html\">Dune::QuadratureRules</a></div><div class=\"ttdoc\">A container for all quadrature rules of dimension dim</div><div class=\"ttdef\"><b>Definition</b> quadraturerules.hh:260</div></div>\n-<div class=\"ttc\" id=\"aa01367_html\"><div class=\"ttname\"><a href=\"a01367.html\">Dune::GeometryType</a></div><div class=\"ttdoc\">Unique label for each type of entities that can occur in DUNE grids.</div><div class=\"ttdef\"><b>Definition</b> type.hh:114</div></div>\n-<div class=\"ttc\" id=\"aa01367_html_af04ef531b52014e4e382722b54102163\"><div class=\"ttname\"><a href=\"a01367.html#af04ef531b52014e4e382722b54102163\">Dune::GeometryType::isSimplex</a></div><div class=\"ttdeci\">constexpr bool isSimplex() const</div><div class=\"ttdoc\">Return true if entity is a simplex of any dimension.</div><div class=\"ttdef\"><b>Definition</b> type.hh:319</div></div>\n+<div class=\"ttc\" id=\"aa00272_html_af1da6e2739b0151f232dcecc95812162\"><div class=\"ttname\"><a href=\"a00272.html#af1da6e2739b0151f232dcecc95812162\">Dune::RefinementImp::PrismTriangulation::transformCoordinate</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType, dimension > point)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:50</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_a34aeb4b15c94db3e510c0b3e10940689\"><div class=\"ttname\"><a href=\"a00274.html#a34aeb4b15c94db3e510c0b3e10940689\">Dune::RefinementImp::Simplex::getPermutation</a></div><div class=\"ttdeci\">FieldVector< int, n > getPermutation(int m)</div><div class=\"ttdoc\">Calculate permutation from it's index.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:293</div></div>\n+<div class=\"ttc\" id=\"aa00274_html_aa6957a526f21902c037a5ff222b3f36a\"><div class=\"ttname\"><a href=\"a00274.html#aa6957a526f21902c037a5ff222b3f36a\">Dune::RefinementImp::Simplex::referenceToKuhn</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</div><div class=\"ttdoc\">Map from the reference simplex to some Kuhn simplex.</div><div class=\"ttdef\"><b>Definition</b> simplex.cc:322</div></div>\n+<div class=\"ttc\" id=\"aa01119_html\"><div class=\"ttname\"><a href=\"a01119.html\">Dune::Codim</a></div><div class=\"ttdoc\">Static tag representing a codimension.</div><div class=\"ttdef\"><b>Definition</b> dimension.hh:24</div></div>\n+<div class=\"ttc\" id=\"aa01151_html\"><div class=\"ttname\"><a href=\"a01151.html\">Dune::MultiLinearGeometry</a></div><div class=\"ttdoc\">generic geometry implementation based on corner coordinates</div><div class=\"ttdef\"><b>Definition</b> multilineargeometry.hh:181</div></div>\n+<div class=\"ttc\" id=\"aa01283_html\"><div class=\"ttname\"><a href=\"a01283.html\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial</a></div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:43</div></div>\n+<div class=\"ttc\" id=\"aa01287_html\"><div class=\"ttname\"><a href=\"a01287.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp</a></div><div class=\"ttdoc\">Implementation of the refinement of a prism into simplices.</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:67</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a1db511cdf3b70e7dc62b208673f60d26\"><div class=\"ttname\"><a href=\"a01287.html#a1db511cdf3b70e7dc62b208673f60d26\">Dune::RefinementImp::PrismTriangulation::RefinementImp::dimension</a></div><div class=\"ttdeci\">static constexpr int dimension</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:69</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a28fa55d18aeee749acff6ecc059a1129\"><div class=\"ttname\"><a href=\"a01287.html#a28fa55d18aeee749acff6ecc059a1129\">Dune::RefinementImp::PrismTriangulation::RefinementImp::ctype</a></div><div class=\"ttdeci\">CoordType ctype</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:71</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a37ed72458ea91e50fde6ce5b07282e3b\"><div class=\"ttname\"><a href=\"a01287.html#a37ed72458ea91e50fde6ce5b07282e3b\">Dune::RefinementImp::PrismTriangulation::RefinementImp::vEnd</a></div><div class=\"ttdeci\">static VertexIterator vEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:122</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a3ce884e7f3a05d377c074000aa74b8c4\"><div class=\"ttname\"><a href=\"a01287.html#a3ce884e7f3a05d377c074000aa74b8c4\">Dune::RefinementImp::PrismTriangulation::RefinementImp::IndexVector</a></div><div class=\"ttdeci\">FieldVector< int, dimension+1 > IndexVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:78</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a470cae91d37597d04a3809c0228480cf\"><div class=\"ttname\"><a href=\"a01287.html#a470cae91d37597d04a3809c0228480cf\">Dune::RefinementImp::PrismTriangulation::RefinementImp::eEnd</a></div><div class=\"ttdeci\">static ElementIterator eEnd(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:146</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a4b14571fd52f36bd146826c3dad011b5\"><div class=\"ttname\"><a href=\"a01287.html#a4b14571fd52f36bd146826c3dad011b5\">Dune::RefinementImp::PrismTriangulation::RefinementImp::nVertices</a></div><div class=\"ttdeci\">static int nVertices(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:106</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a5246b713609a65b5d3c8f8787a420ad3\"><div class=\"ttname\"><a href=\"a01287.html#a5246b713609a65b5d3c8f8787a420ad3\">Dune::RefinementImp::PrismTriangulation::RefinementImp::CoordVector</a></div><div class=\"ttdeci\">FieldVector< CoordType, dimension > CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:76</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a5976f814ba44f84e3c84b12da935af64\"><div class=\"ttname\"><a href=\"a01287.html#a5976f814ba44f84e3c84b12da935af64\">Dune::RefinementImp::PrismTriangulation::RefinementImp::nElements</a></div><div class=\"ttdeci\">static int nElements(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:130</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_a950cd49e252e7e8bcd57d515853f2620\"><div class=\"ttname\"><a href=\"a01287.html#a950cd49e252e7e8bcd57d515853f2620\">Dune::RefinementImp::PrismTriangulation::RefinementImp::ElementIterator</a></div><div class=\"ttdeci\">Codim< 0 >::SubEntityIterator ElementIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:77</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_ab3af3622caed3151dd07ae49a3afd895\"><div class=\"ttname\"><a href=\"a01287.html#ab3af3622caed3151dd07ae49a3afd895\">Dune::RefinementImp::PrismTriangulation::RefinementImp::VertexIterator</a></div><div class=\"ttdeci\">Codim< dimension >::SubEntityIterator VertexIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:75</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_abc4e15f595f5c76014f4e570dd5db3e7\"><div class=\"ttname\"><a href=\"a01287.html#abc4e15f595f5c76014f4e570dd5db3e7\">Dune::RefinementImp::PrismTriangulation::RefinementImp::eBegin</a></div><div class=\"ttdeci\">static ElementIterator eBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:138</div></div>\n+<div class=\"ttc\" id=\"aa01287_html_ae7797b1bd454f7464f0ca6474add2d86\"><div class=\"ttname\"><a href=\"a01287.html#ae7797b1bd454f7464f0ca6474add2d86\">Dune::RefinementImp::PrismTriangulation::RefinementImp::vBegin</a></div><div class=\"ttdeci\">static VertexIterator vBegin(int nIntervals)</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:114</div></div>\n+<div class=\"ttc\" id=\"aa01291_html\"><div class=\"ttname\"><a href=\"a01291.html\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim</a></div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:98</div></div>\n+<div class=\"ttc\" id=\"aa01291_html_a7b5e8d0057cf098f98cf3d8916fc2009\"><div class=\"ttname\"><a href=\"a01291.html#a7b5e8d0057cf098f98cf3d8916fc2009\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim::Geometry</a></div><div class=\"ttdeci\">Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension > Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:100</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a05d1480e671b0f4cbcd312ba3665e9bf\"><div class=\"ttname\"><a href=\"a01295.html#a05d1480e671b0f4cbcd312ba3665e9bf\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:178</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a235ca11118a2871442b6d54ac1127b27\"><div class=\"ttname\"><a href=\"a01295.html#a235ca11118a2871442b6d54ac1127b27\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< dimension >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:163</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a44a548a019fd86d982aeb7f2e8a8b336\"><div class=\"ttname\"><a href=\"a01295.html#a44a548a019fd86d982aeb7f2e8a8b336\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:174</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a6c293cbfa7e7a03fb17d038dd6810bad\"><div class=\"ttname\"><a href=\"a01295.html#a6c293cbfa7e7a03fb17d038dd6810bad\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< dimension >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:175</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a723ababeabbdc524c5f17201df9e96a9\"><div class=\"ttname\"><a href=\"a01295.html#a723ababeabbdc524c5f17201df9e96a9\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:162</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_a9be27672edfa6cf9bb454f543889ae74\"><div class=\"ttname\"><a href=\"a01295.html#a9be27672edfa6cf9bb454f543889ae74\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:182</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_aa9c3eb4a919f11b494e4698384c9b536\"><div class=\"ttname\"><a href=\"a01295.html#aa9c3eb4a919f11b494e4698384c9b536\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:161</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_ad83a8287371d043635821940eae78312\"><div class=\"ttname\"><a href=\"a01295.html#ad83a8287371d043635821940eae78312\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:181</div></div>\n+<div class=\"ttc\" id=\"aa01295_html_afb6fd0bd697e065b3993e733764613fe\"><div class=\"ttname\"><a href=\"a01295.html#afb6fd0bd697e065b3993e733764613fe\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:180</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a44a3859e1f79782a9e204b71ae2674c5\"><div class=\"ttname\"><a href=\"a01299.html#a44a3859e1f79782a9e204b71ae2674c5\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::nIntervals_</a></div><div class=\"ttdeci\">int nIntervals_</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:265</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a4752f190730ce2d9493b20569977e8db\"><div class=\"ttname\"><a href=\"a01299.html#a4752f190730ce2d9493b20569977e8db\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Geometry</a></div><div class=\"ttdeci\">Refinement::template Codim< 0 >::Geometry Geometry</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:245</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a514123accfcdfad7725e842381dd1c5b\"><div class=\"ttname\"><a href=\"a01299.html#a514123accfcdfad7725e842381dd1c5b\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backend</a></div><div class=\"ttdeci\">BackendIterator backend</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:268</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a66a5893bda4f116c35c7fcbf524d8ec5\"><div class=\"ttname\"><a href=\"a01299.html#a66a5893bda4f116c35c7fcbf524d8ec5\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::IndexVector</a></div><div class=\"ttdeci\">Refinement::IndexVector IndexVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:243</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a7058338351f189fba61296f63dd58878\"><div class=\"ttname\"><a href=\"a01299.html#a7058338351f189fba61296f63dd58878\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendIterator</a></div><div class=\"ttdeci\">BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:262</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a84db52b7c44f9656626097e4677ae61a\"><div class=\"ttname\"><a href=\"a01299.html#a84db52b7c44f9656626097e4677ae61a\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::kuhnIndex</a></div><div class=\"ttdeci\">int kuhnIndex</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:267</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a8aa0b0f3e920c846d2abec9db44aff55\"><div class=\"ttname\"><a href=\"a01299.html#a8aa0b0f3e920c846d2abec9db44aff55\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::CoordVector</a></div><div class=\"ttdeci\">Refinement::CoordVector CoordVector</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:244</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a8e32af32d57d37cbe2d694541a571eb1\"><div class=\"ttname\"><a href=\"a01299.html#a8e32af32d57d37cbe2d694541a571eb1\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:242</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_a8eead248183a83cc7c492042fe3d5c7c\"><div class=\"ttname\"><a href=\"a01299.html#a8eead248183a83cc7c492042fe3d5c7c\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::backendEnd</a></div><div class=\"ttdeci\">const BackendIterator backendEnd</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:269</div></div>\n+<div class=\"ttc\" id=\"aa01299_html_af32603c76bb9a7d3d79beb12b2765f77\"><div class=\"ttname\"><a href=\"a01299.html#af32603c76bb9a7d3d79beb12b2765f77\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 >::BackendRefinement</a></div><div class=\"ttdeci\">Refinement::BackendRefinement BackendRefinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:261</div></div>\n+<div class=\"ttc\" id=\"aa01303_html_a3571251b93d1f1ae360d8dd10793fab5\"><div class=\"ttname\"><a href=\"a01303.html#a3571251b93d1f1ae360d8dd10793fab5\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::This</a></div><div class=\"ttdeci\">SubEntityIterator This</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:356</div></div>\n+<div class=\"ttc\" id=\"aa01303_html_a87d86e87b79c6e856297ac75d0b07bf1\"><div class=\"ttname\"><a href=\"a01303.html#a87d86e87b79c6e856297ac75d0b07bf1\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::equals</a></div><div class=\"ttdeci\">bool equals(const This &other) const</div></div>\n+<div class=\"ttc\" id=\"aa01303_html_aaedea8917997e892ea39efb9bafcd008\"><div class=\"ttname\"><a href=\"a01303.html#aaedea8917997e892ea39efb9bafcd008\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::Refinement</a></div><div class=\"ttdeci\">RefinementImp< dimension, CoordType > Refinement</div><div class=\"ttdef\"><b>Definition</b> prismtriangulation.cc:355</div></div>\n+<div class=\"ttc\" id=\"aa01303_html_ab157d8cc07a0e9dea4d21d7e83cadffb\"><div class=\"ttname\"><a href=\"a01303.html#ab157d8cc07a0e9dea4d21d7e83cadffb\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension >::SubEntityIterator</a></div><div class=\"ttdeci\">SubEntityIterator(int nIntervals, bool end=false)</div></div>\n+<div class=\"ttc\" id=\"aa01331_html\"><div class=\"ttname\"><a href=\"a01331.html\">Dune::RefinementImp::Simplex::RefinementImp</a></div><div class=\"ttdef\"><b>Definition</b> simplex.cc:361</div></div>\n </div><!-- fragment --></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,531 +1,605 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-localfiniteelementgeometry.hh\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+prismtriangulation.cc\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright \u00c2\u00a9 DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n-6#define DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n+5#ifndef DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n+_\b6#define DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n 7\n-8#include <cassert>\n-9#include <functional>\n-10#include <limits>\n-11#include <type_traits>\n-12#include <vector>\n+8#include <dune/common/fvector.hh>\n+9#include <dune/common/typetraits.hh>\n+10\n+11#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+12#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n 13\n-14#include <dune/common/fmatrix.hh>\n-15#include <dune/common/fvector.hh>\n-16#include <dune/common/math.hh>\n-17#include <dune/common/typetraits.hh>\n-18#include <dune/common/std/type_traits.hh>\n-19\n-20#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh> // for FieldMatrixHelper\n-21#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh>\n-22#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n-23#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n-24#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh>\n-25#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bu_\bt_\bi_\bl_\bi_\bt_\by_\b/_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh>\n-26\n-27namespace _\bD_\bu_\bn_\be {\n-28\n-38template <class LFE, int cdim>\n-_\b3_\b9class _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-40{\n-41 using LocalFiniteElement = LFE;\n-42 using LocalBasis = typename LFE::Traits::LocalBasisType;\n-43 using LocalBasisTraits = typename LocalBasis::Traits;\n-44\n-45public:\n-_\b4_\b7 using _\bc_\bt_\by_\bp_\be = typename LocalBasisTraits::DomainFieldType;\n-48\n-_\b5_\b0 static const int _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = LocalBasisTraits::dimDomain;\n-51\n-_\b5_\b3 static const int _\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = cdim;\n-54\n-_\b5_\b6 using _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = FieldVector<ctype, mydimension>;\n-57\n-_\b5_\b9 using _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be = FieldVector<ctype, coorddimension>;\n-60\n-_\b6_\b2 using _\bV_\bo_\bl_\bu_\bm_\be = decltype(power(std::declval<ctype>(),_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n-63\n-_\b6_\b5 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn = FieldMatrix<ctype, coorddimension, mydimension>;\n-66\n-_\b6_\b8 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, mydimension, coorddimension>;\n-69\n-_\b7_\b1 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be = FieldMatrix<ctype, mydimension, coorddimension>;\n+14#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+15#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n+16\n+17namespace _\bD_\bu_\bn_\be\n+18{\n+19 namespace RefinementImp\n+20 {\n+_\b2_\b6 namespace PrismTriangulation\n+27 {\n+28 // ////////////\n+29 //\n+30 // Utilities\n+31 //\n+32\n+33 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn;\n+34 using _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn;\n+35\n+36 // ////////////////////////////////////\n+37 //\n+38 // Refine a prism with simplices\n+39 //\n+40\n+41 // forward declaration of the iterator base\n+42 template<int dimension, class CoordType, int codimension>\n+_\b4_\b3 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl;\n+44 /*\n+45 * The permutations 0,2 and 3 of the Kuhn-decomposition of a cube into\n+simplices form a prism.\n+46 * The resulting prism is not oriented the same as the reference prism and so\n+the Kuhn-coordinates\n+47 * have to be transformed using the method below.\n+48 */\n+49 template<int dimension, class CoordType> FieldVector<CoordType, dimension>\n+_\b5_\b0 _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(FieldVector<CoordType, dimension> point)\n+51 {\n+52 FieldVector<CoordType, dimension> transform;\n+53 transform[0] = point[1];\n+54 transform[1] = 1 - point[0];\n+55 transform[2] = point[2];\n+56 return transform;\n+57 }\n+58\n+65 template<int dimension_, class CoordType>\n+_\b6_\b6 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+67 {\n+68 public:\n+_\b6_\b9 constexpr static int _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn = dimension_;\n+70\n+_\b7_\b1 typedef CoordType _\bc_\bt_\by_\bp_\be;\n 72\n-_\b7_\b4 using _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd = FieldMatrix<ctype, coorddimension,\n-mydimension>;\n-75\n-76public:\n-_\b7_\b8 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs = _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-_\b7_\b9 using _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt = typename _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt;\n-80\n-81protected:\n-_\b8_\b2 using _\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br = Impl::FieldMatrixHelper<ctype>;\n+73 template<int codimension>\n+74 struct _\bC_\bo_\bd_\bi_\bm;\n+_\b7_\b5 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b7_\b6 typedef FieldVector<CoordType, dimension> _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b7_\b7 typedef typename _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b7_\b8 typedef FieldVector<int, dimension+1> _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+79\n+80 static int _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals);\n+81 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+82 static _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bv_\bE_\bn_\bd(int nIntervals);\n 83\n-84public:\n-_\b8_\b6 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by () = default;\n+84 static int _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals);\n+85 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bB_\be_\bg_\bi_\bn(int nIntervals);\n+_\b8_\b6 static _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bE_\bn_\bd(int nIntervals);\n 87\n-_\b1_\b0_\b3 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& refElement,\n-104 const LocalFiniteElement& localFE,\n-105 std::vector<GlobalCoordinate> vertices)\n-106 : refElement_(refElement)\n-107 , localFE_(localFE)\n-108 , vertices_(_\bs_\bt_\bd::move(vertices))\n-109 {\n-110 assert(localFE_.size() == vertices_.size());\n-111 }\n-112\n-126 template <class Param,\n-127 std::enable_if_t<std::\n-is_invocable_r_v<GlobalCoordinate,Param,LocalCoordinate>, int> = 0>\n-_\b1_\b2_\b8 _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (const _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt& refElement,\n-129 const LocalFiniteElement& localFE,\n-130 Param&& parametrization)\n-131 : refElement_(refElement)\n-132 , localFE_(localFE)\n-133 {\n-134 localFE_.localInterpolation().interpolate(parametrization, vertices_);\n-135 }\n-136\n-143 template <class... Args>\n-_\b1_\b4_\b4 explicit _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be gt, Args&&... args)\n-145 : _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by(_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs::general(gt), _\bs_\bt_\bd::\n-forward<Args>(args)...)\n-146 {}\n-147\n-_\b1_\b4_\b9 int _\bo_\br_\bd_\be_\br () const\n-150 {\n-151 return _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().order();\n-152 }\n-153\n-_\b1_\b5_\b9 bool _\ba_\bf_\bf_\bi_\bn_\be () const\n-160 {\n-161 if (!affine_)\n-162 affine_.emplace(affineImpl());\n-163 return *affine_;\n-164 }\n-165\n-_\b1_\b6_\b7 _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be _\bt_\by_\bp_\be () const\n-168 {\n-169 return refElement_.type();\n-170 }\n+88 private:\n+89 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, 0>;\n+90 friend class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn>;\n+91\n+92 typedef _\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+93 };\n+94\n+95 template<int dimension, class CoordType>\n+96 template<int codimension>\n+_\b9_\b7 struct _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm\n+98 {\n+99 class SubEntityIterator;\n+_\b1_\b0_\b0 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by<CoordType,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn-\n+codimension,_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn> _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+101 };\n+102\n+103 template<int dimension, class CoordType>\n+104 int\n+_\b1_\b0_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+106_\b _\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs(int nIntervals)\n+107 {\n+108 return BackendRefinement::nVertices(nIntervals) * 3;\n+109 }\n+110\n+111 template<int dimension, class CoordType>\n+112 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b1_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+114_\b _\bv_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+115 {\n+116 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+117 }\n+118\n+119 template<int dimension, class CoordType>\n+120 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+122_\b _\bv_\bE_\bn_\bd(int nIntervals)\n+123 {\n+124 return _\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n+125 }\n+126\n+127 template<int dimension, class CoordType>\n+128 int\n+_\b1_\b2_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+130_\b _\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs(int nIntervals)\n+131 {\n+132 return BackendRefinement::nElements(nIntervals) * 3;\n+133 }\n+134\n+135 template<int dimension, class CoordType>\n+136 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b3_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+138_\b _\be_\bB_\be_\bg_\bi_\bn(int nIntervals)\n+139 {\n+140 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals);\n+141 }\n+142\n+143 template<int dimension, class CoordType>\n+144 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\b1_\b4_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:\n+146_\b _\be_\bE_\bn_\bd(int nIntervals)\n+147 {\n+148 return _\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(nIntervals, true);\n+149 }\n+150\n+151 // //////////////\n+152 //\n+153 // The iterator\n+154 //\n+155\n+156 // vertices\n+157 template<int dimension, class CoordType>\n+_\b1_\b5_\b8 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, dimension>\n+159 {\n+160 public:\n+_\b1_\b6_\b1 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b6_\b2 typedef typename Refinement::CoordVector _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b1_\b6_\b3 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n+164\n+165 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+166\n+167 void increment();\n+168\n+169 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+170 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n 171\n-_\b1_\b7_\b3 int _\bc_\bo_\br_\bn_\be_\br_\bs () const\n-174 {\n-175 return refElement_.size(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n-176 }\n+172 int index() const;\n+173 protected:\n+_\b1_\b7_\b4 typedef typename Refinement::BackendRefinement _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b1_\b7_\b5 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b1_\b7_\b6 constexpr static int nKuhnSimplices = 3;\n 177\n-_\b1_\b7_\b9 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\bo_\br_\bn_\be_\br (int i) const\n-180 {\n-181 assert( (i >= 0) && (i < _\bc_\bo_\br_\bn_\be_\br_\bs()) );\n-182 return _\bg_\bl_\bo_\bb_\ba_\bl(refElement_.position(i, _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n-183 }\n+_\b1_\b7_\b8 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n+179\n+_\b1_\b8_\b0 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n+_\b1_\b8_\b1 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n+_\b1_\b8_\b2 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n+183 };\n 184\n-_\b1_\b8_\b6 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bc_\be_\bn_\bt_\be_\br () const\n-187 {\n-188 return _\bg_\bl_\bo_\bb_\ba_\bl(refElement_.position(0, 0));\n-189 }\n-190\n-_\b2_\b0_\b2 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bg_\bl_\bo_\bb_\ba_\bl (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+185 template<int dimension, class CoordType>\n+_\b1_\b8_\b6 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+187_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+188 : nIntervals_(nIntervals), kuhnIndex(0),\n+189 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vBegin(nIntervals_)),\n+190 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::vEnd(nIntervals_))\n+191 {\n+192 if (end)\n+193 kuhnIndex = nKuhnSimplices;\n+194 }\n+195\n+196 template<int dimension, class CoordType>\n+197 void\n+_\b1_\b9_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+199_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+200 {\n+201 ++backend;\n+202 if (backend == backendEnd)\n 203 {\n-204 thread_local std::vector<typename LocalBasisTraits::RangeType> shapeValues;\n-205 _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().evaluateFunction(_\bl_\bo_\bc_\ba_\bl, shapeValues);\n-206 assert(shapeValues.size() == vertices_.size());\n-207\n-208 _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be out(0);\n-209 for (std::size_t i = 0; i < shapeValues.size(); ++i)\n-210 out.axpy(shapeValues[i], vertices_[i]);\n-211\n-212 return out;\n-213 }\n-214\n-_\b2_\b3_\b2 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be _\bl_\bo_\bc_\ba_\bl (const _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& y, Impl::\n-GaussNewtonOptions<ctype> opts = {}) const\n+204 backend = BackendRefinement::vBegin(nIntervals_);\n+205 ++kuhnIndex;\n+206 }\n+207 }\n+208\n+209 template<int dimension, class CoordType>\n+210 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b2_\b1_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+212_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+213 {\n+214 // while the kuhnIndex runs from 0,1,2 the actual permutations we need are\n+0,2,3\n+215 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n+216 getPermutation<dimension>((kuhnIndex + 2) % 4)));\n+217 }\n+218\n+219 template<int dimension, class CoordType>\n+220 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b2_\b2_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by ()\n+const\n+222 {\n+223 std::vector<CoordVector> corners(1);\n+224 corners[0] = _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(backend.coords(),\n+225 getPermutation<dimension>((kuhnIndex + 2) % 4)));\n+226 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(GeometryTypes::vertex, corners);\n+227 }\n+228\n+229 template<int dimension, class CoordType>\n+230 int\n+_\b2_\b3_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+232_\b _\bi_\bn_\bd_\be_\bx() const\n 233 {\n-234 _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be x = refElement_.position(0,0);\n-235 Impl::GaussNewtonErrorCode err = Impl::gaussNewton(\n-236 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(local); },\n-237 [&](const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) { return this->_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(local);\n-},\n-238 y, x, opts\n-239 );\n-240\n-241 if (err != Impl::GaussNewtonErrorCode::OK)\n-242 DUNE_THROW(Dune::Exception,\n-243 \"Local coordinate can not be recovered from global coordinate, error code =\n-\" << int(err) << \"\\n\"\n-244 << \" (global(x) - y).two_norm() = \" << (_\bg_\bl_\bo_\bb_\ba_\bl(x) - y).two_norm()\n-245 << \" > tol = \" << opts.absTol);\n+234 return kuhnIndex*BackendRefinement::nVertices(nIntervals_) + backend.index\n+();\n+235 }\n+236\n+237 // elements\n+238 template<int dimension, class CoordType>\n+_\b2_\b3_\b9 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, 0>\n+240 {\n+241 public:\n+_\b2_\b4_\b2 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b4_\b3 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br;\n+_\b2_\b4_\b4 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br;\n+_\b2_\b4_\b5 typedef typename Refinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by _\bG_\be_\bo_\bm_\be_\bt_\br_\by;\n 246\n-247 return x;\n-248 }\n-249\n-_\b2_\b6_\b0 _\bc_\bt_\by_\bp_\be _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-261 {\n-262 return MatrixHelper::sqrtDetAAT(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd(_\bl_\bo_\bc_\ba_\bl));\n-263 }\n+247 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end = false);\n+248\n+249 void increment();\n+250\n+251 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br vertexIndices() const;\n+252 int index() const;\n+253 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br coords() const;\n+254\n+255 _\bG_\be_\bo_\bm_\be_\bt_\br_\by geometry () const;\n+256\n+257 private:\n+258 _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br global(const _\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br &local) const;\n+259\n+260 protected:\n+_\b2_\b6_\b1 typedef typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b2_\b6_\b2 typedef typename BackendRefinement::template _\bC_\bo_\bd_\bi_\bm_\b<_\b0_\b>_\b:_\b:_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b2_\b6_\b3 constexpr static int nKuhnSimplices = 3;\n 264\n-_\b2_\b7_\b6 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (Impl::ConvergenceOptions<ctype> opts = {}) const\n-277 {\n-278 _\bV_\bo_\bl_\bu_\bm_\be vol0 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), 1));\n-279 if (_\ba_\bf_\bf_\bi_\bn_\be())\n-280 return vol0;\n-281\n-282 using std::abs;\n-283 for (int p = 2; p < opts.maxIt; ++p) {\n-284 _\bV_\bo_\bl_\bu_\bm_\be vol1 = _\bv_\bo_\bl_\bu_\bm_\be(_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:_\br_\bu_\bl_\be(_\bt_\by_\bp_\be(), p));\n-285 if (abs(vol1 - vol0) < opts.absTol)\n-286 return vol1;\n-287\n-288 vol0 = vol1;\n-289 }\n-290 return vol0;\n-291 }\n-292\n-_\b2_\b9_\b4 _\bV_\bo_\bl_\bu_\bm_\be _\bv_\bo_\bl_\bu_\bm_\be (const _\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\b<_\bc_\bt_\by_\bp_\be_\b,_\b _\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>& quadRule) const\n-295 {\n-296 _\bV_\bo_\bl_\bu_\bm_\be vol(0);\n-297 for (const auto& qp : quadRule)\n-298 vol += _\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt(qp.position()) * qp.weight();\n-299 return vol;\n-300 }\n-301\n-_\b3_\b0_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-308 {\n-309 thread_local std::vector<typename LocalBasisTraits::JacobianType>\n-shapeJacobians;\n-310 _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs().evaluateJacobian(_\bl_\bo_\bc_\ba_\bl, shapeJacobians);\n-311 assert(shapeJacobians.size() == vertices_.size());\n-312\n-313 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn out(0);\n-314 for (std::size_t i = 0; i < shapeJacobians.size(); ++i) {\n-315 for (int j = 0; j < Jacobian::rows; ++j) {\n-316 shapeJacobians[i].umtv(vertices_[i][j], out[j]);\n-317 }\n-318 }\n-319 return out;\n-320 }\n-321\n-_\b3_\b2_\b7 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n+_\b2_\b6_\b5 int _\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_;\n+266\n+_\b2_\b6_\b7 int _\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx;\n+_\b2_\b6_\b8 _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd;\n+_\b2_\b6_\b9 const _\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd;\n+270 };\n+271\n+272 template<int dimension, class CoordType>\n+_\b2_\b7_\b3 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+274_\b _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl(int nIntervals, bool end)\n+275 : nIntervals_(nIntervals), kuhnIndex(0),\n+276 backend(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eBegin(nIntervals_)),\n+277 backendEnd(_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt::eEnd(nIntervals_))\n+278 {\n+279 if (end)\n+280 kuhnIndex = nKuhnSimplices;\n+281 }\n+282\n+283 template<int dimension, class CoordType>\n+284 void\n+_\b2_\b8_\b5 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+286_\b _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt()\n+287 {\n+288 ++backend;\n+289 if (backend == backendEnd)\n+290 {\n+291 backend = BackendRefinement::eBegin(nIntervals_);\n+292 ++kuhnIndex;\n+293 }\n+294 }\n+295\n+296 template<int dimension, class CoordType>\n+297 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+_\b2_\b9_\b8 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+299_\b _\bv_\be_\br_\bt_\be_\bx_\bI_\bn_\bd_\bi_\bc_\be_\bs() const\n+300 {\n+301 _\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br indices = backend.vertexIndices();\n+302\n+303 int base = kuhnIndex * BackendRefinement::nVertices(nIntervals_);\n+304 indices += base;\n+305\n+306 return indices;\n+307 }\n+308\n+309 template<int dimension, class CoordType>\n+310 int\n+_\b3_\b1_\b1 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+312_\b _\bi_\bn_\bd_\be_\bx() const\n+313 {\n+314 return kuhnIndex*BackendRefinement::nElements(nIntervals_) + backend.index\n+();\n+315 }\n+316\n+317 template<int dimension, class CoordType>\n+318 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+_\b3_\b1_\b9 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+320_\b _\bc_\bo_\bo_\br_\bd_\bs() const\n+321 {\n+322 return global(backend.coords());\n+323 }\n+324\n+325 template<int dimension, class CoordType>\n+326 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+_\b3_\b2_\b7 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bg_\be_\bo_\bm_\be_\bt_\br_\by () const\n 328 {\n-329 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl).transposed();\n-330 }\n-331\n-_\b3_\b3_\b9 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be& _\bl_\bo_\bc_\ba_\bl) const\n-340 {\n-341 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be out;\n-342 MatrixHelper::leftInvA(_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn(_\bl_\bo_\bc_\ba_\bl), out);\n-343 return out;\n-344 }\n-345\n-_\b3_\b5_\b3 _\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd (const _\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be&\n-_\bl_\bo_\bc_\ba_\bl) const\n-354 {\n-355 return _\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be(_\bl_\bo_\bc_\ba_\bl).transposed();\n-356 }\n+329 const typename BackendIterator::Geometry &bgeo =\n+330 backend.geometry();\n+331 std::vector<CoordVector> corners(dimension+1);\n+332 for(int i = 0; i <= dimension; ++i)\n+333 corners[i] = global(bgeo.corner(i));\n+334\n+335 return _\bG_\be_\bo_\bm_\be_\bt_\br_\by(bgeo.type(), corners);\n+336 }\n+337\n+338 template<int dimension, class CoordType>\n+339 typename _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+340 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b>_\b:_\b:\n+341_\b _\bg_\bl_\bo_\bb_\ba_\bl(const CoordVector &local) const\n+342 {\n+343 // while the kuhnIndex runs from 0,1,2 the actual permutations we need are\n+0,2,3\n+344 return _\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be(referenceToKuhn(local, getPermutation<dimension>\n+((kuhnIndex+2)%4)));\n+345 }\n+346\n+347 // common\n+348 template<int dimension, class CoordType>\n+349 template<int codimension>\n+_\b3_\b5_\b0 class _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp<dimension, CoordType>::_\bC_\bo_\bd_\bi_\bm<codimension>::\n+SubEntityIterator\n+351 : public ForwardIteratorFacade<typename RefinementImp<dimension,\n+CoordType>::template Codim<codimension>::SubEntityIterator, int>,\n+352 public _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>\n+353 {\n+354 public:\n+_\b3_\b5_\b5 typedef _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b> _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt;\n+_\b3_\b5_\b6 typedef SubEntityIterator _\bT_\bh_\bi_\bs;\n 357\n-_\b3_\b5_\b9 friend _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt (const _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by&\n-geometry)\n-360 {\n-361 return geometry.refElement_;\n-362 }\n-363\n-_\b3_\b6_\b5 const LocalFiniteElement& _\bf_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt () const\n-366 {\n-367 return localFE_;\n-368 }\n-369\n-_\b3_\b7_\b1 const std::vector<GlobalCoordinate>& _\bc_\bo_\be_\bf_\bf_\bi_\bc_\bi_\be_\bn_\bt_\bs () const\n-372 {\n-373 return vertices_;\n-374 }\n-375\n-_\b3_\b7_\b7 const LocalBasis& _\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs () const\n-378 {\n-379 return localFE_.localBasis();\n-380 }\n-381\n-382private:\n+_\b3_\b5_\b8 _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end = false);\n+359\n+_\b3_\b6_\b0 bool _\be_\bq_\bu_\ba_\bl_\bs(const _\bT_\bh_\bi_\bs &other) const;\n+361 protected:\n+362 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n+kuhnIndex;\n+363 using _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn, CoordType, codimension>::\n+backend;\n+364 };\n+365\n+366#ifndef DOXYGEN\n+367 template<int dimension, class CoordType>\n+368 template<int codimension>\n+369 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+370_\b _\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br(int nIntervals, bool end)\n+371 : _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl<dimension, CoordType, codimension>(nIntervals,\n+end)\n+372 {}\n+373\n+374 template<int dimension, class CoordType>\n+375 template<int codimension>\n+376 bool\n+377 _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b:_\b:\n+378_\b _\be_\bq_\bu_\ba_\bl_\bs(const This &other) const\n+379 {\n+380 return ((kuhnIndex == other.kuhnIndex) && (backend == other.backend));\n+381 }\n+382#endif\n 383\n-384 bool affineImpl () const\n-385 {\n-386 if constexpr(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn == 0)\n-387 // point geometries are always affine mappings\n-388 return true;\n-389 else {\n-390 if (_\bo_\br_\bd_\be_\br() > 1)\n-391 // higher-order parametrizations are by definition not affine\n-392 return false;\n-393 if constexpr(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn == 1)\n-394 // linear line geometries are affine mappings\n-395 return true;\n-396 else {\n-397 if (_\bt_\by_\bp_\be()._\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx())\n-398 // linear simplex geometries are affine mappings\n-399 return true;\n-400\n-401 // multi-linear mappings on non-simplex geometries might be affine\n-402 // as well. This is tested explicitly for all vertices by constructing\n-403 // an affine mapping from dim+1 affine-independent corners and evaluating\n-404 // at the other corners.\n-405 auto refSimplex = referenceElement<ctype,mydimension>(GeometryTypes::\n-simplex(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n-406 auto simplexIndices = Dune::range(refSimplex.size(_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn));\n-407 auto simplexCorners = Dune::transformedRangeView(simplexIndices,\n-408 [&](int i) { return this->_\bg_\bl_\bo_\bb_\ba_\bl(refSimplex.position(i,_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn)); });\n-409 AffineGeometry<ctype,mydimension,coorddimension> affineGeo\n-(refSimplex,simplexCorners);\n-410 using std::sqrt;\n-411 const _\bc_\bt_\by_\bp_\be tol = sqrt(std::numeric_limits<ctype>::epsilon());\n-412 for (int i = 0; i < _\bc_\bo_\br_\bn_\be_\br_\bs(); ++i) {\n-413 const auto _\bc_\bo_\br_\bn_\be_\br = refElement_.position(i,_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn);\n-414 if ((affineGeo.global(_\bc_\bo_\br_\bn_\be_\br) - _\bg_\bl_\bo_\bb_\ba_\bl(_\bc_\bo_\br_\bn_\be_\br)).two_norm() > tol)\n-415 return false;\n-416 }\n-417 return true;\n-418 }\n-419 }\n-420 }\n-421\n-422private:\n-424 _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt refElement_{};\n-425\n-427 LocalFiniteElement localFE_{};\n-428\n-430 std::vector<GlobalCoordinate> vertices_{};\n-431\n-432 mutable std::optional<bool> affine_ = std::nullopt;\n-433};\n-434\n-435namespace Impl {\n-436\n-437// extract the LocalCoordinate type from a LocalFiniteElement\n-438template <class LFE>\n-439using LocalCoordinate_t\n-440 = FieldVector<typename LFE::Traits::LocalBasisType::Traits::\n-DomainFieldType,\n-441 LFE::Traits::LocalBasisType::Traits::dimDomain>;\n-442\n-443} // end namespace Impl\n-444\n-445\n-446// deduction guides\n-447template <class I, class LFE, class GlobalCoordinate>\n-_\b4_\b4_\b8_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\bI_\b>, const LFE&, std::\n-vector<GlobalCoordinate>)\n-449 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-450\n-451template <class I, class LFE, class F,\n-452 class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n-_\b4_\b5_\b3_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\b<_\bI_\b>, const LFE&, const F&)\n-454 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bR_\ba_\bn_\bg_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-455\n-456template <class LFE, class GlobalCoordinate>\n-_\b4_\b5_\b7_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE& localFE, std::\n-vector<GlobalCoordinate>)\n-458 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-459\n-460template <class LFE, class F,\n-461 class Range = std::invoke_result_t<F,Impl::LocalCoordinate_t<LFE>>>\n-_\b4_\b6_\b2_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be, const LFE&, const F&)\n-463 -> _\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b<_\bL_\bF_\bE_\b,_\b _\bR_\ba_\bn_\bg_\be_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b>;\n-464\n-465} // namespace Dune\n-466\n-467#endif // DUNE_GEOMETRY_LOCALFINITEELEMENTGEOMETRY_HH\n-_\ba_\bf_\bf_\bi_\bn_\be_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b._\bh_\bh\n-An implementation of the Geometry interface for affine geometries.\n+384 } // namespace PrismTriangulation\n+385 } // namespace RefinementImp\n+386\n+387 namespace RefinementImp\n+388 {\n+389 // ///////////////////////\n+390 //\n+391 // The refinement traits\n+392 //\n+393\n+394#ifndef DOXYGEN\n+395 template<unsigned topologyId, class CoordType, unsigned coerceToId>\n+396 struct Traits<\n+397 topologyId, CoordType, coerceToId, 3,\n+398 typename _\bs_\bt_\bd::enable_if<\n+399 (GeometryTypes::prism.id() >> 1) ==\n+400 (topologyId >> 1) &&\n+401 (GeometryTypes::simplex(3).id() >> 1) ==\n+402 (coerceToId >> 1)\n+403 >::type>\n+404 {\n+405 typedef PrismTriangulation::RefinementImp<3, CoordType> Imp;\n+406 };\n+407#endif\n+408\n+409 } // namespace RefinementImp\n+410} // namespace Dune\n+411\n+412#endif // DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC\n+_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n _\bt_\by_\bp_\be_\b._\bh_\bh\n A unique label for each type of element that can occur in a grid.\n-_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh\n-_\bq_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\br_\bu_\bl_\be_\bs_\b._\bh_\bh\n-_\ba_\bl_\bg_\bo_\br_\bi_\bt_\bh_\bm_\bs_\b._\bh_\bh\n-_\bc_\bo_\bn_\bv_\be_\br_\bg_\be_\bn_\bc_\be_\b._\bh_\bh\n+_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\n+This file contains the Refinement implementation for simplices (triangles,\n+tetrahedrons....\n+_\bb_\ba_\bs_\be_\b._\bc_\bc\n+This file contains the parts independent of a particular Refinement\n+implementation.\n _\bs_\bt_\bd\n STL namespace.\n _\bD_\bu_\bn_\be\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn affinegeometry.hh:21\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-This class provides access to geometric and topological properties of a\n-reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelement.hh:52\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n-Class providing access to the singletons of the reference elements.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename Container::ReferenceElement ReferenceElement\n-The reference element type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn referenceelements.hh:146\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-Geometry implementation based on local-basis function parametrization.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:40\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bt_\by_\bp_\be\n-GeometryType type() const\n-Obtain the name of the reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:167\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bV_\bo_\bl_\bu_\bm_\be\n-decltype(power(std::declval< ctype >(), mydimension)) Volume\n-type of volume\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:62\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl\n-LocalCoordinate local(const GlobalCoordinate &y, Impl::GaussNewtonOptions<\n-ctype > opts={}) const\n-Evaluate the inverse coordinate mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:232\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-LocalFiniteElementGeometry(const ReferenceElement &refElement, const\n-LocalFiniteElement &localFE, std::vector< GlobalCoordinate > vertices)\n-Constructor from a vector of coefficients of the LocalBasis parametrizing the\n-geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:103\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const\n-Obtain the transposed of the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:327\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bl_\bo_\bc_\ba_\bl_\bB_\ba_\bs_\bi_\bs\n-const LocalBasis & localBasis() const\n-The local basis of the stored local finite-element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:377\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bt_\by_\bp_\be\n-typename LocalBasisTraits::DomainFieldType ctype\n-coordinate type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:47\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate\n-&local) const\n-Obtain the transposed of the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:353\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-friend ReferenceElement referenceElement(const LocalFiniteElementGeometry\n-&geometry)\n-Obtain the reference-element related to this geometry.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:359\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-LocalFiniteElementGeometry()=default\n-Default constructed geometry results in an empty/invalid representation.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\ba_\bf_\bf_\bi_\bn_\be\n-bool affine() const\n-Is this mapping affine? Geometries of order 1 might be affine, but it needs to\n-be checked on non-simp...\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:159\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-Jacobian jacobian(const LocalCoordinate &local) const\n-Obtain the Jacobian.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:307\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume(const QuadratureRule< ctype, mydimension > &quadRule) const\n-Obtain the volume of the mapping's image by given quadrature rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:294\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\be_\bf_\bf_\bi_\bc_\bi_\be_\bn_\bt_\bs\n-const std::vector< GlobalCoordinate > & coefficients() const\n-Obtain the coefficients of the parametrization.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:371\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-LocalFiniteElementGeometry(GeometryType gt, Args &&... args)\n-Constructor, forwarding to the other constructors that take a reference-\n-element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:144\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\bo_\br_\bd_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const int coorddimension\n-coordinate dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:53\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br_\bs\n-int corners() const\n-Obtain number of corners of the corresponding reference element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:173\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\be_\bn_\bt_\be_\br\n-GlobalCoordinate center() const\n-Obtain the centroid of the mapping's image.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:186\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bf_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-const LocalFiniteElement & finiteElement() const\n-Obtain the local finite-element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:365\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bg_\bl_\bo_\bb_\ba_\bl\n-GlobalCoordinate global(const LocalCoordinate &local) const\n-Evaluate the coordinate mapping.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:202\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bM_\ba_\bt_\br_\bi_\bx_\bH_\be_\bl_\bp_\be_\br\n-Impl::FieldMatrixHelper< ctype > MatrixHelper\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:82\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bE_\bl_\be_\bm_\be_\bn_\bt\n-typename ReferenceElements::ReferenceElement ReferenceElement\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:79\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bc_\bo_\br_\bn_\be_\br\n-GlobalCoordinate corner(int i) const\n-Obtain coordinates of the i-th corner.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:179\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bv_\bo_\bl_\bu_\bm_\be\n-Volume volume(Impl::ConvergenceOptions< ctype > opts={}) const\n-Obtain the volume of the mapping's image.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:276\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bm_\by_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n-static const int mydimension\n-geometry dimension\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:50\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bj_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-JacobianInverse jacobianInverse(const LocalCoordinate &local) const\n-Obtain the Jacobian's inverse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:339\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bG_\bl_\bo_\bb_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, coorddimension > GlobalCoordinate\n-type of global coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:59\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn\n-FieldMatrix< ctype, coorddimension, mydimension > Jacobian\n-type of jacobian\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:65\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-FieldMatrix< ctype, coorddimension, mydimension > JacobianInverseTransposed\n-type of jacobian inverse transposed\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:74\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bI_\bn_\bv_\be_\br_\bs_\be\n-FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse\n-type of jacobian inverse\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:71\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bi_\bn_\bt_\be_\bg_\br_\ba_\bt_\bi_\bo_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt\n-ctype integrationElement(const LocalCoordinate &local) const\n-Obtain the integration element.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:260\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bo_\br_\bd_\be_\br\n-int order() const\n-Obtain the (highest) polynomial order of the parametrization.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:149\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n-FieldVector< ctype, mydimension > LocalCoordinate\n-type of local coordinates\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:56\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bJ_\ba_\bc_\bo_\bb_\bi_\ba_\bn_\bT_\br_\ba_\bn_\bs_\bp_\bo_\bs_\be_\bd\n-FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed\n-type of jacobian transposed\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:68\n-_\bD_\bu_\bn_\be_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\b:_\b:_\bL_\bo_\bc_\ba_\bl_\bF_\bi_\bn_\bi_\bt_\be_\bE_\bl_\be_\bm_\be_\bn_\bt_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n-LocalFiniteElementGeometry(const ReferenceElement &refElement, const\n-LocalFiniteElement &localFE, Param &¶metrization)\n-Constructor from a local parametrization function, mapping local to (curved)\n-global coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn localfiniteelementgeometry.hh:128\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be\n-Abstract base class for quadrature rules.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:214\n-_\bD_\bu_\bn_\be_\b:_\b:_\bQ_\bu_\ba_\bd_\br_\ba_\bt_\bu_\br_\be_\bR_\bu_\bl_\be_\bs\n-A container for all quadrature rules of dimension dim\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn quadraturerules.hh:260\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be\n-Unique label for each type of entities that can occur in DUNE grids.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:114\n-_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bi_\bs_\bS_\bi_\bm_\bp_\bl_\be_\bx\n-constexpr bool isSimplex() const\n-Return true if entity is a simplex of any dimension.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type.hh:319\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bC_\bo_\bo_\br_\bd_\bi_\bn_\ba_\bt_\be\n+FieldVector< CoordType, dimension > transformCoordinate(FieldVector< CoordType,\n+dimension > point)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bg_\be_\bt_\bP_\be_\br_\bm_\bu_\bt_\ba_\bt_\bi_\bo_\bn\n+FieldVector< int, n > getPermutation(int m)\n+Calculate permutation from it's index.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:293\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bT_\bo_\bK_\bu_\bh_\bn\n+FieldVector< CoordType, dimension > referenceToKuhn(FieldVector< CoordType,\n+dimension > point, const FieldVector< int, dimension > &kuhn)\n+Map from the reference simplex to some Kuhn simplex.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:322\n+_\bD_\bu_\bn_\be_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+Static tag representing a codimension.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dimension.hh:24\n+_\bD_\bu_\bn_\be_\b:_\b:_\bM_\bu_\bl_\bt_\bi_\bL_\bi_\bn_\be_\ba_\br_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+generic geometry implementation based on corner coordinates\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn multilineargeometry.hh:181\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:43\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+Implementation of the refinement of a prism into simplices.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:67\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn\n+static constexpr int dimension\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:69\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bc_\bt_\by_\bp_\be\n+CoordType ctype\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:71\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bE_\bn_\bd\n+static VertexIterator vEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:122\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< int, dimension+1 > IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:78\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bE_\bn_\bd\n+static ElementIterator eEnd(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:146\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bV_\be_\br_\bt_\bi_\bc_\be_\bs\n+static int nVertices(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:106\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+FieldVector< CoordType, dimension > CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:76\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bn_\bE_\bl_\be_\bm_\be_\bn_\bt_\bs\n+static int nElements(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:130\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bE_\bl_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< 0 >::SubEntityIterator ElementIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:77\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bV_\be_\br_\bt_\be_\bx_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Codim< dimension >::SubEntityIterator VertexIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:75\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\be_\bB_\be_\bg_\bi_\bn\n+static ElementIterator eBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:138\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bv_\bB_\be_\bg_\bi_\bn\n+static VertexIterator vBegin(int nIntervals)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:114\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:98\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Dune::MultiLinearGeometry< CoordType, dimension-codimension, dimension >\n+Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:100\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n+int nIntervals_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:178\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< dimension >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:163\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Refinement::BackendRefinement BackendRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:174\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+BackendRefinement::template Codim< dimension >::SubEntityIterator\n+BackendIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:175\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:162\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n+const BackendIterator backendEnd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:182\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:161\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n+BackendIterator backend\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:181\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n+int kuhnIndex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:180\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bn_\bI_\bn_\bt_\be_\br_\bv_\ba_\bl_\bs_\b_\n+int nIntervals_\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:265\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bG_\be_\bo_\bm_\be_\bt_\br_\by\n+Refinement::template Codim< 0 >::Geometry Geometry\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:245\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd\n+BackendIterator backend\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:268\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bI_\bn_\bd_\be_\bx_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::IndexVector IndexVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:243\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+BackendRefinement::template Codim< 0 >::SubEntityIterator BackendIterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:262\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bk_\bu_\bh_\bn_\bI_\bn_\bd_\be_\bx\n+int kuhnIndex\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:267\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bC_\bo_\bo_\br_\bd_\bV_\be_\bc_\bt_\bo_\br\n+Refinement::CoordVector CoordVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:244\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:242\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bb_\ba_\bc_\bk_\be_\bn_\bd_\bE_\bn_\bd\n+const BackendIterator backendEnd\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:269\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,\n+_\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>_\b:_\b:_\bB_\ba_\bc_\bk_\be_\bn_\bd_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+Refinement::BackendRefinement BackendRefinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:261\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\bT_\bh_\bi_\bs\n+SubEntityIterator This\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:356\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\be_\bq_\bu_\ba_\bl_\bs\n+bool equals(const This &other) const\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+RefinementImp< dimension, CoordType > Refinement\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn prismtriangulation.cc:355\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bP_\br_\bi_\bs_\bm_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>_\b:_\b:\n+_\bS_\bu_\bb_\bE_\bn_\bt_\bi_\bt_\by_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+SubEntityIterator(int nIntervals, bool end=false)\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bS_\bi_\bm_\bp_\bl_\be_\bx_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simplex.cc:361\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00248.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00248.html", "unified_diff": "@@ -1,15 +1,15 @@\n <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n <meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n-<title>dune-geometry: referenceelementimplementation.cc File Reference</title>\n+<title>dune-geometry: hcubetriangulation.cc File Reference</title>\n <link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"jquery.js\"></script>\n <script type=\"text/javascript\" src=\"dynsections.js\"></script>\n <link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n <script type=\"text/javascript\" src=\"search/search.js\"></script>\n <link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n@@ -65,32 +65,82 @@\n </div>\n </div>\n </div>\n </div>\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n-<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n+<li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"summary\">\n-<a href=\"#namespaces\">Namespaces</a> </div>\n- <div class=\"headertitle\"><div class=\"title\">referenceelementimplementation.cc File Reference</div></div>\n+<a href=\"#nested-classes\">Classes</a> |\n+<a href=\"#namespaces\">Namespaces</a> |\n+<a href=\"#define-members\">Macros</a> </div>\n+ <div class=\"headertitle\"><div class=\"title\">hcubetriangulation.cc File Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n-<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/referenceelementimplementation.hh</a>></code><br />\n-</div><table class=\"memberdecls\">\n+\n+<p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) \n+<a href=\"#details\">More...</a></p>\n+<div class=\"textblock\"><code>#include <<a class=\"el\" href=\"a00182_source.html\">dune/geometry/referenceelements.hh</a>></code><br />\n+<code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code><br />\n+<code>#include "<a class=\"el\" href=\"a00236_source.html\">base.cc</a>"</code><br />\n+<code>#include "<a class=\"el\" href=\"a00233_source.html\">simplex.cc</a>"</code><br />\n+</div>\n+<p><a href=\"a00248_source.html\">Go to the source code of this file.</a></p>\n+<table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n+Classes</h2></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01263.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">struct  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01267.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01271.html\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01275.html\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01279.html\">Dune::RefinementImp::HCubeTriangulation::RefinementImp< dimension_, CoordType >::Codim< codimension ></a></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\n Namespaces</h2></td></tr>\n <tr class=\"memitem:a00263\" id=\"r_a00263\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00263.html\">Dune</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:a00264\" id=\"r_a00264\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00264.html\">Dune::Geo</a></td></tr>\n+<tr class=\"memitem:a00269\" id=\"r_a00269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00269.html\">Dune::RefinementImp</a></td></tr>\n+<tr class=\"memdesc:a00269\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the implementation of <a class=\"el\" href=\"a00260.html\">Refinement</a>. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+<tr class=\"memitem:a00271\" id=\"r_a00271\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00271.html\">Dune::RefinementImp::HCubeTriangulation</a></td></tr>\n+<tr class=\"memdesc:a00271\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This namespace contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (<a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\" title=\"Cube element in any nonnegative dimension.\">GeometryType::cube</a> -> <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\" title=\"Simplicial element in any nonnegative dimension.\">GeometryType::simplex</a>) <br /></td></tr>\n+<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n+</table><table class=\"memberdecls\">\n+<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"define-members\" name=\"define-members\"></a>\n+Macros</h2></td></tr>\n+<tr class=\"memitem:a3fe24de9b756cd18f014979a41cb0843\" id=\"r_a3fe24de9b756cd18f014979a41cb0843\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">#define </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00248.html#a3fe24de9b756cd18f014979a41cb0843\">DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</a></td></tr>\n+<tr class=\"separator:a3fe24de9b756cd18f014979a41cb0843\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n+<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n+<div class=\"textblock\"><p>This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) </p>\n+<p>See <a class=\"el\" href=\"a00258.html\">Refinement implementation for triangulating hypercubes</a>. </p>\n+</div><h2 class=\"groupheader\">Macro Definition Documentation</h2>\n+<a id=\"a3fe24de9b756cd18f014979a41cb0843\" name=\"a3fe24de9b756cd18f014979a41cb0843\"></a>\n+<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3fe24de9b756cd18f014979a41cb0843\">◆ </a></span>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</h2>\n+\n+<div class=\"memitem\">\n+<div class=\"memproto\">\n+ <table class=\"memname\">\n+ <tr>\n+ <td class=\"memname\">#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</td>\n+ </tr>\n+ </table>\n+</div><div class=\"memdoc\">\n+\n+</div>\n+</div>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,16 +1,55 @@\n dune-geometry\u00a02.10\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bg_\be_\bo_\bm_\be_\bt_\br_\by\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-referenceelementimplementation.cc File Reference\n-#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b._\bh_\bh>\n+ * _\br_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs\n+hcubetriangulation.cc File Reference\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for triangulating hypercubes\n+(quadrilateral -> triangle, hexahedron -> tetrahedron) _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bg_\be_\bo_\bm_\be_\bt_\br_\by_\b/_\bt_\by_\bp_\be_\b._\bh_\bh>\n+#include \"_\bb_\ba_\bs_\be_\b._\bc_\bc\"\n+#include \"_\bs_\bi_\bm_\bp_\bl_\be_\bx_\b._\bc_\bc\"\n+_\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bS_\bp_\be_\bc_\bi_\ba_\bl_\b<\n+ _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b,_\b _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b,_\b _\b0_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b<_\b _\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b__\b,\n+ _\bC_\bo_\bo_\br_\bd_\bT_\by_\bp_\be_\b _\b>_\b:_\b:_\bC_\bo_\bd_\bi_\bm_\b<_\b _\bc_\bo_\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\b _\b>\n+\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bo\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp\n+\u00a0 This namespace contains the implementation of _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt.\n+\u00a0\n+namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\bI_\bm_\bp_\b:_\b:_\bH_\bC_\bu_\bb_\be_\bT_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bo_\bn\n+ This namespace contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for\n+\u00a0 triangulating hypercubes (_\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:_\bc_\bu_\bb_\be -> _\bG_\be_\bo_\bm_\be_\bt_\br_\by_\bT_\by_\bp_\be_\b:_\b:\n+ _\bs_\bi_\bm_\bp_\bl_\be_\bx)\n+\u00a0\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bO_\bM_\bE_\bT_\bR_\bY_\b__\bR_\bE_\bF_\bI_\bN_\bE_\bM_\bE_\bN_\bT_\b__\bH_\bC_\bU_\bB_\bE_\bT_\bR_\bI_\bA_\bN_\bG_\bU_\bL_\bA_\bT_\bI_\bO_\bN_\b__\bC_\bC\n \u00a0\n+*\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+This file contains the _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt implementation for triangulating hypercubes\n+(quadrilateral -> triangle, hexahedron -> tetrahedron)\n+See _\bR_\be_\bf_\bi_\bn_\be_\bm_\be_\bn_\bt_\b _\bi_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bf_\bo_\br_\b _\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\bi_\bn_\bg_\b _\bh_\by_\bp_\be_\br_\bc_\bu_\bb_\be_\bs.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEO\bOM\bME\bET\bTR\bRY\bY_\b_R\bRE\bEF\bFI\bIN\bNE\bEM\bME\bEN\bNT\bT_\b_H\bHC\bCU\bUB\bBE\bET\bTR\bRI\bIA\bAN\bNG\bGU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_C\bCC\bC *\b**\b**\b**\b**\b*\n+#define DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00263.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00263.html", "unified_diff": "@@ -647,16 +647,16 @@\n <td>)</td>\n <td></td><td></td>\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n <p>Algorithm to reduce vertex order information. </p>\n-<div class=\"fragment\"><div class=\"line\"><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00179.html\">dune/geometry/generalvertexorder.hh</a>></span></div>\n-<div class=\"ttc\" id=\"aa00179_html\"><div class=\"ttname\"><a href=\"a00179.html\">generalvertexorder.hh</a></div></div>\n+<div class=\"fragment\"><div class=\"line\"><span class=\"preprocessor\">#include <<a class=\"code\" href=\"a00212.html\">dune/geometry/generalvertexorder.hh</a>></span></div>\n+<div class=\"ttc\" id=\"aa00212_html\"><div class=\"ttname\"><a href=\"a00212.html\">generalvertexorder.hh</a></div></div>\n </div><!-- fragment --><dl class=\"params\"><dt>Parameters</dt><dd>\n <table class=\"params\">\n <tr><td class=\"paramname\">inBegin</td><td>Start of the range of ids to reduce. </td></tr>\n <tr><td class=\"paramname\">inEnd</td><td>End of the range of ids to reduce. </td></tr>\n <tr><td class=\"paramname\">outIt</td><td>Start of the sequence where to store the result.</td></tr>\n </table>\n </dd>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01091.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01091.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::Geo::ReferenceElement< Implementation > Class Template Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00254.html\">Reference Elements</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>This class provides access to geometric and topological properties of a reference element. \n <a href=\"a01091.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00185_source.html\">dune/geometry/referenceelement.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00206_source.html\">dune/geometry/referenceelement.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::Geo::ReferenceElement< Implementation >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01090.png\" border=\"0\" usemap=\"#a_dune_1_1_geo_1_1_reference_element_3_01_implementation_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_geo_1_1_reference_element_3_01_implementation_01_4_inherit__map\" id=\"a_dune_1_1_geo_1_1_reference_element_3_01_implementation_01_4_inherit__map\">\n <area shape=\"rect\" title=\"This class provides access to geometric and topological properties of a reference element.\" alt=\"\" coords=\"5,15,205,55\"/>\n <area shape=\"rect\" href=\"a01091.html\" title=\" \" alt=\"\" coords=\"499,7,761,62\"/>\n@@ -883,16 +883,16 @@\n </div><div class=\"memdoc\">\n \n <p>The dimension of the reference element. </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following files:<ul>\n-<li><a class=\"el\" href=\"a00170_source.html\">affinegeometry.hh</a></li>\n-<li><a class=\"el\" href=\"a00185_source.html\">referenceelement.hh</a></li>\n+<li><a class=\"el\" href=\"a00191_source.html\">affinegeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00206_source.html\">referenceelement.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01095.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01095.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_geo_1_1_reference_element_implementation_3_01ctype_00_01dim_01_4_inherit__map\" id=\"a_dune_1_1_geo_1_1_reference_element_implementation_3_01ctype_00_01dim_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"31,5,231,45\"/>\n <area shape=\"rect\" href=\"a01095.html\" title=\" \" alt=\"\" coords=\"5,108,257,148\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"134,59,134,108,129,108,129,59\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00170_source.html\">affinegeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00191_source.html\">affinegeometry.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01099.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01099.html", "unified_diff": "@@ -389,15 +389,15 @@\n </div><div class=\"memdoc\">\n \n <p>The dimension of the contained reference elements. </p>\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following files:<ul>\n-<li><a class=\"el\" href=\"a00170_source.html\">affinegeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00191_source.html\">affinegeometry.hh</a></li>\n <li><a class=\"el\" href=\"a00182_source.html\">referenceelements.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01107.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01107.html", "unified_diff": "@@ -81,15 +81,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::AffineGeometry< ct, mydim, cdim > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Implementation of the Geometry interface for affine geometries. \n <a href=\"a01107.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/affinegeometry.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/affinegeometry.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:ab8847944e2ea7863aaa8b776731c2081\" id=\"r_ab8847944e2ea7863aaa8b776731c2081\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef ct </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a></td></tr>\n <tr class=\"memdesc:ab8847944e2ea7863aaa8b776731c2081\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Type used for coordinates. <br /></td></tr>\n <tr class=\"separator:ab8847944e2ea7863aaa8b776731c2081\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a3c1b10f3f337e38e6ec273d21110c7cb\" id=\"r_a3c1b10f3f337e38e6ec273d21110c7cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef FieldVector< <a class=\"el\" href=\"a01107.html#ab8847944e2ea7863aaa8b776731c2081\">ctype</a>, <a class=\"el\" href=\"a01107.html#a4eacf4f1784f7b2627cd14dbf8fbe231\">mydimension</a> > </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01107.html#a3c1b10f3f337e38e6ec273d21110c7cb\">LocalCoordinate</a></td></tr>\n@@ -1028,15 +1028,15 @@\n </div><div class=\"memdoc\">\n \n <p>Dimension of the geometry. </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00170_source.html\">affinegeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00191_source.html\">affinegeometry.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01111.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01111.html", "unified_diff": "@@ -81,15 +81,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::AxisAlignedCubeGeometry< CoordType, dim, coorddim > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>A geometry implementation for axis-aligned hypercubes. \n <a href=\"a01111.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00191_source.html\">dune/geometry/axisalignedcubegeometry.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00194_source.html\">dune/geometry/axisalignedcubegeometry.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a81c4e2db01fa9110b7589ddcbcba56fe\" id=\"r_a81c4e2db01fa9110b7589ddcbcba56fe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef CoordType </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a></td></tr>\n <tr class=\"memdesc:a81c4e2db01fa9110b7589ddcbcba56fe\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Type used for single coordinate coefficients. <br /></td></tr>\n <tr class=\"separator:a81c4e2db01fa9110b7589ddcbcba56fe\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a3cc835b7d048ee36b8a82c76f7831b84\" id=\"r_a3cc835b7d048ee36b8a82c76f7831b84\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef FieldVector< <a class=\"el\" href=\"a01111.html#a81c4e2db01fa9110b7589ddcbcba56fe\">ctype</a>, dim > </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01111.html#a3cc835b7d048ee36b8a82c76f7831b84\">LocalCoordinate</a></td></tr>\n@@ -933,15 +933,15 @@\n </div><div class=\"memdoc\">\n \n <p>Dimension of the cube element. </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00191_source.html\">axisalignedcubegeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00194_source.html\">axisalignedcubegeometry.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01115.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01115.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::Dim< dim > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Static tag representing a dimension. \n <a href=\"a01115.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00230_source.html\">dune/geometry/dimension.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00209_source.html\">dune/geometry/dimension.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::Dim< dim >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01114.png\" border=\"0\" usemap=\"#a_dune_1_1_dim_3_01dim_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_dim_3_01dim_01_4_inherit__map\" id=\"a_dune_1_1_dim_3_01dim_01_4_inherit__map\">\n <area shape=\"rect\" title=\"Static tag representing a dimension.\" alt=\"\" coords=\"13,93,144,119\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,152,45\"/>\n@@ -117,15 +117,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00230_source.html\">dimension.hh</a></li>\n+<li><a class=\"el\" href=\"a00209_source.html\">dimension.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01119.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01119.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::Codim< codim > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Static tag representing a codimension. \n <a href=\"a01119.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00230_source.html\">dune/geometry/dimension.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00209_source.html\">dune/geometry/dimension.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::Codim< codim >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01118.png\" border=\"0\" usemap=\"#a_dune_1_1_codim_3_01codim_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_codim_3_01codim_01_4_inherit__map\" id=\"a_dune_1_1_codim_3_01codim_01_4_inherit__map\">\n <area shape=\"rect\" title=\"Static tag representing a codimension.\" alt=\"\" coords=\"173,95,331,120\"/>\n <area shape=\"rect\" href=\"a01119.html\" title=\" \" alt=\"\" coords=\"5,183,136,208\"/>\n@@ -123,15 +123,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00230_source.html\">dimension.hh</a></li>\n+<li><a class=\"el\" href=\"a00209_source.html\">dimension.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01123.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01123.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::GeneralVertexOrder< dim, Index_ > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Class providing information on the ordering of vertices. \n <a href=\"a01123.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00179_source.html\">dune/geometry/generalvertexorder.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/generalvertexorder.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\n Classes</h2></td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01127.html\">iterator</a></td></tr>\n <tr class=\"memdesc:\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Iterate over the vertex indices of some sub-entity. <a href=\"a01127.html#details\">More...</a><br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n@@ -417,15 +417,15 @@\n </div><div class=\"memdoc\">\n \n <p>export the dimension of the entity we provide information for </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00179_source.html\">generalvertexorder.hh</a></li>\n+<li><a class=\"el\" href=\"a00212_source.html\">generalvertexorder.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01127.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01127.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::GeneralVertexOrder< dim, Index_ >::iterator Class Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Iterate over the vertex indices of some sub-entity. \n <a href=\"a01127.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00179_source.html\">dune/geometry/generalvertexorder.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/generalvertexorder.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::GeneralVertexOrder< dim, Index_ >::iterator:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01126.png\" border=\"0\" usemap=\"#a_dune_1_1_general_vertex_order_3_01dim_00_01_index___01_4_1_1iterator_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_general_vertex_order_3_01dim_00_01_index___01_4_1_1iterator_inherit__map\" id=\"a_dune_1_1_general_vertex_order_3_01dim_00_01_index___01_4_1_1iterator_inherit__map\">\n <area shape=\"rect\" title=\"Iterate over the vertex indices of some sub-entity.\" alt=\"\" coords=\"15,108,191,148\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,200,60\"/>\n@@ -341,15 +341,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00179_source.html\">generalvertexorder.hh</a></li>\n+<li><a class=\"el\" href=\"a00212_source.html\">generalvertexorder.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01131.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01131.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::LocalFiniteElementGeometry< LFE, cdim > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Geometry implementation based on local-basis function parametrization. \n <a href=\"a01131.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00245_source.html\">dune/geometry/localfiniteelementgeometry.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/localfiniteelementgeometry.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a2ed536b3dea28cdf3f2211691a87a158\" id=\"r_a2ed536b3dea28cdf3f2211691a87a158\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a> = typename LocalBasisTraits::DomainFieldType</td></tr>\n <tr class=\"memdesc:a2ed536b3dea28cdf3f2211691a87a158\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">coordinate type <br /></td></tr>\n <tr class=\"separator:a2ed536b3dea28cdf3f2211691a87a158\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:af8a137e7ca593617217e21fbc7909e28\" id=\"r_af8a137e7ca593617217e21fbc7909e28\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01131.html#af8a137e7ca593617217e21fbc7909e28\">LocalCoordinate</a> = FieldVector< <a class=\"el\" href=\"a01131.html#a2ed536b3dea28cdf3f2211691a87a158\">ctype</a>, <a class=\"el\" href=\"a01131.html#ab706d664eb4eafa52baa4fac612fef4e\">mydimension</a> ></td></tr>\n@@ -1267,15 +1267,15 @@\n </div><div class=\"memdoc\">\n \n <p>geometry dimension </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00245_source.html\">localfiniteelementgeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00173_source.html\">localfiniteelementgeometry.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01135.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01135.html", "unified_diff": "@@ -83,15 +83,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::MappedGeometry< Map, Geo > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Geometry parametrized by a LocalFunction and a LocalGeometry. \n <a href=\"a01135.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00233_source.html\">dune/geometry/mappedgeometry.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00170_source.html\">dune/geometry/mappedgeometry.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a76bb25b2a7da1d92f31becae6bdc5ef8\" id=\"r_a76bb25b2a7da1d92f31becae6bdc5ef8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01135.html#a76bb25b2a7da1d92f31becae6bdc5ef8\">LocalCoordinate</a> = typename Geo::LocalCoordinate</td></tr>\n <tr class=\"memdesc:a76bb25b2a7da1d92f31becae6bdc5ef8\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">type of local coordinates <br /></td></tr>\n <tr class=\"separator:a76bb25b2a7da1d92f31becae6bdc5ef8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a0a60875cb95949396a466aef9a184f20\" id=\"r_a0a60875cb95949396a466aef9a184f20\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01135.html#a0a60875cb95949396a466aef9a184f20\">GlobalCoordinate</a> = std::remove_reference_t< decltype(std::declval< Map >()(std::declval< typename Geo::GlobalCoordinate >()))></td></tr>\n@@ -1074,15 +1074,15 @@\n </div><div class=\"memdoc\">\n \n <p>geometry dimension </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00233_source.html\">mappedgeometry.hh</a></li>\n+<li><a class=\"el\" href=\"a00170_source.html\">mappedgeometry.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01163.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01163.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadraturePoint< ct, dim > Class Template Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00256.html\">Quadrature</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Single evaluation point in a quadrature rule. \n <a href=\"a01163.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a2418b3ae04b2bddea9aedb7a02ae021c\" id=\"r_a2418b3ae04b2bddea9aedb7a02ae021c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef ct </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01163.html#a2418b3ae04b2bddea9aedb7a02ae021c\">Field</a></td></tr>\n <tr class=\"memdesc:a2418b3ae04b2bddea9aedb7a02ae021c\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Number type used for coordinates and quadrature weights. <br /></td></tr>\n <tr class=\"separator:a2418b3ae04b2bddea9aedb7a02ae021c\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a0a9bc1947b8b5f92f2601198c4a1d50c\" id=\"r_a0a9bc1947b8b5f92f2601198c4a1d50c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef Dune::FieldVector< ct, dim > </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01163.html#a0a9bc1947b8b5f92f2601198c4a1d50c\">Vector</a></td></tr>\n@@ -392,15 +392,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01167.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01167.html", "unified_diff": "@@ -73,27 +73,27 @@\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"headertitle\"><div class=\"title\">std::tuple_size< Dune::QuadraturePoint< ct, dim > > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for std::tuple_size< Dune::QuadraturePoint< ct, dim > >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01166.png\" border=\"0\" usemap=\"#astd_1_1tuple__size_3_01_dune_1_1_quadrature_point_3_01ct_00_01dim_01_4_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"astd_1_1tuple__size_3_01_dune_1_1_quadrature_point_3_01ct_00_01dim_01_4_01_4_inherit__map\" id=\"astd_1_1tuple__size_3_01_dune_1_1_quadrature_point_3_01ct_00_01dim_01_4_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,93,156,148\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"7,5,154,45\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"83,59,83,93,78,93,78,59\"/>\n </map>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01171.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01171.html", "unified_diff": "@@ -76,15 +76,15 @@\n <div class=\"summary\">\n <a href=\"#pub-types\">Public Types</a> |\n <a href=\"a01168.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:ab8051c958c296e06f8cd30ddb8002cea\" id=\"r_ab8051c958c296e06f8cd30ddb8002cea\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01171.html#ab8051c958c296e06f8cd30ddb8002cea\">type</a> = Dune::FieldVector< ct, dim ></td></tr>\n <tr class=\"separator:ab8051c958c296e06f8cd30ddb8002cea\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <h2 class=\"groupheader\">Member Typedef Documentation</h2>\n@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01175.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01175.html", "unified_diff": "@@ -76,15 +76,15 @@\n <div class=\"summary\">\n <a href=\"#pub-types\">Public Types</a> |\n <a href=\"a01172.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a6337ec014d58dfb750abb27361a6d230\" id=\"r_a6337ec014d58dfb750abb27361a6d230\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01175.html#a6337ec014d58dfb750abb27361a6d230\">type</a> = ct</td></tr>\n <tr class=\"separator:a6337ec014d58dfb750abb27361a6d230\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n <h2 class=\"groupheader\">Member Typedef Documentation</h2>\n@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01179.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01179.html", "unified_diff": "@@ -76,29 +76,29 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureOrderOutOfRange Class Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00256.html\">Quadrature</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Exception thrown if a desired <a class=\"el\" href=\"a01183.html\" title=\"Abstract base class for quadrature rules.\">QuadratureRule</a> is not available, because the requested order is to high. \n <a href=\"a01179.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::QuadratureOrderOutOfRange:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01178.png\" border=\"0\" usemap=\"#a_dune_1_1_quadrature_order_out_of_range_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_quadrature_order_out_of_range_inherit__map\" id=\"a_dune_1_1_quadrature_order_out_of_range_inherit__map\">\n <area shape=\"rect\" title=\"Exception thrown if a desired QuadratureRule is not available, because the requested order is to high...\" alt=\"\" coords=\"5,79,184,119\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"35,5,154,31\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"97,44,97,79,92,79,92,44\"/>\n </map>\n </div>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n <div class=\"textblock\"><p>Exception thrown if a desired <a class=\"el\" href=\"a01183.html\" title=\"Abstract base class for quadrature rules.\">QuadratureRule</a> is not available, because the requested order is to high. </p>\n </div><hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01183.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01183.html", "unified_diff": "@@ -84,15 +84,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRule< ct, dim > Class Template Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00256.html\">Quadrature</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Abstract base class for quadrature rules. \n <a href=\"a01183.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::QuadratureRule< ct, dim >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01182.png\" border=\"0\" usemap=\"#a_dune_1_1_quadrature_rule_3_01ct_00_01dim_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_quadrature_rule_3_01ct_00_01dim_01_4_inherit__map\" id=\"a_dune_1_1_quadrature_rule_3_01ct_00_01dim_01_4_inherit__map\">\n <area shape=\"rect\" title=\"Abstract base class for quadrature rules.\" alt=\"\" coords=\"5,79,157,119\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"24,5,139,31\"/>\n@@ -482,15 +482,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01187.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01187.html", "unified_diff": "@@ -78,21 +78,21 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRuleFactory< ctype, dim > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Factory class for creation of quadrature rules, depending on <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>, order and <a class=\"el\" href=\"a00266.html\" title=\"Defines an enum for currently available quadrature rules.\">QuadratureType</a>. \n <a href=\"a01187.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n <div class=\"textblock\"><div class=\"compoundTemplParams\">template<typename ctype, int dim><br />\n class Dune::QuadratureRuleFactory< ctype, dim ></div><p>Factory class for creation of quadrature rules, depending on <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>, order and <a class=\"el\" href=\"a00266.html\" title=\"Defines an enum for currently available quadrature rules.\">QuadratureType</a>. </p>\n <p>The whole class is private and can only be accessed by the singleton container class <a class=\"el\" href=\"a01191.html\" title=\"A container for all quadrature rules of dimension dim\">QuadratureRules</a>. </p>\n </div><hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01191.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01191.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRules< ctype, dim > Class Template Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00256.html\">Quadrature</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>A container for all quadrature rules of dimension <code>dim</code> \n <a href=\"a01191.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\n Static Public Member Functions</h2></td></tr>\n <tr class=\"memitem:a55d090c68f5bff19964b3f79af52f68d\" id=\"r_a55d090c68f5bff19964b3f79af52f68d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static unsigned </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01191.html#a55d090c68f5bff19964b3f79af52f68d\">maxOrder</a> (const <a class=\"el\" href=\"a01367.html\">GeometryType</a> &t, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=<a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a>)</td></tr>\n <tr class=\"memdesc:a55d090c68f5bff19964b3f79af52f68d\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">maximum quadrature order for given geometry type and quadrature type <br /></td></tr>\n <tr class=\"separator:a55d090c68f5bff19964b3f79af52f68d\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:ac69416a2180ed4043c457251b8b4eebe\" id=\"r_ac69416a2180ed4043c457251b8b4eebe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static const <a class=\"el\" href=\"a01183.html\">QuadratureRule</a> & </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01191.html#ac69416a2180ed4043c457251b8b4eebe\">rule</a> (const <a class=\"el\" href=\"a01367.html\">GeometryType</a> &t, int p, <a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4\">QuadratureType::Enum</a> qt=<a class=\"el\" href=\"a00266.html#a7d0a250c55cc0a769535f8fb07731ac4af3d804d5fae603020acce944c499edb4\">QuadratureType::GaussLegendre</a>)</td></tr>\n@@ -230,15 +230,15 @@\n </div><div class=\"memdoc\">\n \n <p>select the appropriate <a class=\"el\" href=\"a01183.html\" title=\"Abstract base class for quadrature rules.\">QuadratureRule</a> for <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a> t and order p </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01195.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01195.html", "unified_diff": "@@ -75,17 +75,17 @@\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"a01192.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRuleFactory< ctype, 0 > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01199.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01199.html", "unified_diff": "@@ -75,17 +75,17 @@\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"a01196.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRuleFactory< ctype, 1 > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01203.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01203.html", "unified_diff": "@@ -75,17 +75,17 @@\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"a01200.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRuleFactory< ctype, 2 > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01207.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01207.html", "unified_diff": "@@ -75,17 +75,17 @@\n <div class=\"header\">\n <div class=\"summary\">\n <a href=\"a01204.html\">List of all members</a> </div>\n <div class=\"headertitle\"><div class=\"title\">Dune::QuadratureRuleFactory< ctype, 3 > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n-<p><code>#include <<a class=\"el\" href=\"a00212_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00188_source.html\">dune/geometry/quadraturerules.hh</a>></code></p>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00212_source.html\">quadraturerules.hh</a></li>\n+<li><a class=\"el\" href=\"a00188_source.html\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01215.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01215.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::Geo::ReferenceElement< Implementation >::Codim< codim > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Collection of types depending on the codimension. \n <a href=\"a01215.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00185_source.html\">dune/geometry/referenceelement.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00206_source.html\">dune/geometry/referenceelement.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a034c2c384a82b9ab873762f3e533cb93\" id=\"r_a034c2c384a82b9ab873762f3e533cb93\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">using </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01215.html#a034c2c384a82b9ab873762f3e533cb93\">Geometry</a> = implementation-defined</td></tr>\n <tr class=\"memdesc:a034c2c384a82b9ab873762f3e533cb93\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">type of geometry embedding a subentity into the reference element <br /></td></tr>\n <tr class=\"separator:a034c2c384a82b9ab873762f3e533cb93\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n@@ -113,15 +113,15 @@\n </div><div class=\"memdoc\">\n \n <p>type of geometry embedding a subentity into the reference element </p>\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00185_source.html\">referenceelement.hh</a></li>\n+<li><a class=\"el\" href=\"a00206_source.html\">referenceelement.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01219.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01219.html", "unified_diff": "@@ -96,15 +96,15 @@\n <p>Each specialisation should contain a single member typedef Imp, e.g.: </p><div class=\"fragment\"><div class=\"line\"><span class=\"keyword\">template</span><<span class=\"keyword\">class</span> CoordType></div>\n <div class=\"line\"><span class=\"keyword\">struct </span><a class=\"code hl_struct\" href=\"a01219.html\">Traits</a><sphereTopologyId, CoordType, Impl::CubeToplogy<2>::id, 2></div>\n <div class=\"line\">{</div>\n <div class=\"line\"> <span class=\"keyword\">typedef</span> SquaringTheCircle::Refinement Imp;</div>\n <div class=\"line\">};</div>\n <div class=\"ttc\" id=\"aa01219_html\"><div class=\"ttname\"><a href=\"a01219.html\">Dune::RefinementImp::Traits</a></div><div class=\"ttdoc\">Mapping from geometryType, CoordType and coerceTo to a particular Refinement implementation.</div><div class=\"ttdef\"><b>Definition</b> base.cc:70</div></div>\n </div><!-- fragment --> </div><hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00206_source.html\">base.cc</a></li>\n+<li><a class=\"el\" href=\"a00236_source.html\">base.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01223.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01223.html", "unified_diff": "@@ -143,15 +143,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00206_source.html\">base.cc</a></li>\n+<li><a class=\"el\" href=\"a00236_source.html\">base.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01227.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01227.html", "unified_diff": "@@ -461,15 +461,15 @@\n \n <p>The IndexVector of the Refinement. </p>\n <p>This is always a typedef to a FieldVector </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00206_source.html\">base.cc</a></li>\n+<li><a class=\"el\" href=\"a00236_source.html\">base.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01231.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01231.html", "unified_diff": "@@ -118,15 +118,15 @@\n \n <p>The SubEntityIterator for each codim. </p>\n <p>This is <em>some</em> sort of type, not necessarily a typedef </p>\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00206_source.html\">base.cc</a></li>\n+<li><a class=\"el\" href=\"a00236_source.html\">base.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01235.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01235.html", "unified_diff": "@@ -412,15 +412,15 @@\n </div><div class=\"memdoc\">\n \n <p>Know your own dimension. </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01239.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01239.html", "unified_diff": "@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01243.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01243.html", "unified_diff": "@@ -98,15 +98,15 @@\n <tr><td class=\"paramname\">CoordType</td><td>Coordinate type of the refined element </td></tr>\n <tr><td class=\"paramname\">codimension</td><td>Codimension of the iterator</td></tr>\n </table>\n </dd>\n </dl>\n <p>This is the base class for SubEntityIterators. We have to use this construct because RefinementImp<...>::codim<...> cannot be specialized without first specializing <a class=\"el\" href=\"a01235.html\" title=\"Refinement implementation for hypercubes\">RefinementImp</a>. </p>\n </div><hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01247.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01247.html", "unified_diff": "@@ -161,15 +161,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01251.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01251.html", "unified_diff": "@@ -200,15 +200,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01255.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01255.html", "unified_diff": "@@ -265,15 +265,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00209_source.html\">hcube.cc</a></li>\n+<li><a class=\"el\" href=\"a00242_source.html\">hcube.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01259.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01259.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_refinement_imp_1_1_h_cube_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_refinement_imp_1_1_h_cube_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,263,75\"/>\n <area shape=\"rect\" href=\"a01279.html\" title=\" \" alt=\"\" coords=\"311,5,565,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"276,37,310,37,310,43,276,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01263.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01263.html", "unified_diff": "@@ -395,15 +395,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01267.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01267.html", "unified_diff": "@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01271.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01271.html", "unified_diff": "@@ -452,15 +452,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01275.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01275.html", "unified_diff": "@@ -513,15 +513,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01279.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01279.html", "unified_diff": "@@ -196,15 +196,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00194_source.html\">hcubetriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00248_source.html\">hcubetriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01283.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01283.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_refinement_imp_1_1_prism_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_refinement_imp_1_1_prism_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,263,75\"/>\n <area shape=\"rect\" href=\"a01303.html\" title=\" \" alt=\"\" coords=\"311,5,565,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"276,37,310,37,310,43,276,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01287.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01287.html", "unified_diff": "@@ -402,15 +402,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01291.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01291.html", "unified_diff": "@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01295.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01295.html", "unified_diff": "@@ -452,15 +452,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01299.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01299.html", "unified_diff": "@@ -491,15 +491,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01303.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01303.html", "unified_diff": "@@ -196,15 +196,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00203_source.html\">prismtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00245_source.html\">prismtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01307.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01307.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_refinement_imp_1_1_pyramid_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_refinement_imp_1_1_pyramid_triangulation_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,263,75\"/>\n <area shape=\"rect\" href=\"a01327.html\" title=\" \" alt=\"\" coords=\"311,5,565,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"276,37,310,37,310,43,276,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01311.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01311.html", "unified_diff": "@@ -402,15 +402,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01315.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01315.html", "unified_diff": "@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01319.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01319.html", "unified_diff": "@@ -452,15 +452,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01323.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01323.html", "unified_diff": "@@ -491,15 +491,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01327.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01327.html", "unified_diff": "@@ -196,15 +196,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00197_source.html\">pyramidtriangulation.cc</a></li>\n+<li><a class=\"el\" href=\"a00239_source.html\">pyramidtriangulation.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01331.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01331.html", "unified_diff": "@@ -395,15 +395,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01335.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01335.html", "unified_diff": "@@ -101,15 +101,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01339.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01339.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_refinement_imp_1_1_simplex_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_refinement_imp_1_1_simplex_1_1_refinement_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,216,75\"/>\n <area shape=\"rect\" href=\"a01351.html\" title=\" \" alt=\"\" coords=\"264,5,441,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"230,37,264,37,264,43,230,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01343.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01343.html", "unified_diff": "@@ -384,15 +384,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01347.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01347.html", "unified_diff": "@@ -503,15 +503,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01351.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01351.html", "unified_diff": "@@ -152,15 +152,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00200_source.html\">simplex.cc</a></li>\n+<li><a class=\"el\" href=\"a00233_source.html\">simplex.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01355.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01355.html", "unified_diff": "@@ -81,15 +81,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::TopologyFactory< Traits > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Provide a factory over the generic topologies. \n <a href=\"a01355.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00242_source.html\">dune/geometry/topologyfactory.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00179_source.html\">dune/geometry/topologyfactory.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:aa4fd3e0e671225cd8a7851ebed201f2a\" id=\"r_aa4fd3e0e671225cd8a7851ebed201f2a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef Traits::Key </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01355.html#aa4fd3e0e671225cd8a7851ebed201f2a\">Key</a></td></tr>\n <tr class=\"separator:aa4fd3e0e671225cd8a7851ebed201f2a\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:af8e95b31a464841f84839db4d7613136\" id=\"r_af8e95b31a464841f84839db4d7613136\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef Traits::Object </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01355.html#af8e95b31a464841f84839db4d7613136\">Object</a></td></tr>\n <tr class=\"separator:af8e95b31a464841f84839db4d7613136\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n@@ -328,15 +328,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00242_source.html\">topologyfactory.hh</a></li>\n+<li><a class=\"el\" href=\"a00179_source.html\">topologyfactory.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01359.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01359.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::TopologySingletonFactory< Factory > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>A wrapper for a <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> providing singleton storage. Same usage as <a class=\"el\" href=\"a01355.html\" title=\"Provide a factory over the generic topologies.\">TopologyFactory</a> but with empty release method an internal storage. \n <a href=\"a01359.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00242_source.html\">dune/geometry/topologyfactory.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00179_source.html\">dune/geometry/topologyfactory.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:aafa55fd9a319b566b070649b57b9565f\" id=\"r_aafa55fd9a319b566b070649b57b9565f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef Factory::Key </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01359.html#aafa55fd9a319b566b070649b57b9565f\">Key</a></td></tr>\n <tr class=\"separator:aafa55fd9a319b566b070649b57b9565f\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:aaeca2707ab5e5c86e2b478493db495d8\" id=\"r_aaeca2707ab5e5c86e2b478493db495d8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">typedef const Factory::Object </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01359.html#aaeca2707ab5e5c86e2b478493db495d8\">Object</a></td></tr>\n <tr class=\"separator:aaeca2707ab5e5c86e2b478493db495d8\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n@@ -309,15 +309,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00242_source.html\">topologyfactory.hh</a></li>\n+<li><a class=\"el\" href=\"a00179_source.html\">topologyfactory.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01367.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01367.html", "unified_diff": "@@ -80,15 +80,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::GeometryType Class Reference<div class=\"ingroups\"><a class=\"el\" href=\"a00252.html\">dune-geometry</a> » <a class=\"el\" href=\"a00253.html\">Geometry Type</a></div></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Unique label for each type of entities that can occur in DUNE grids. \n <a href=\"a01367.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00173_source.html\">dune/geometry/type.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/type.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-types\" name=\"pub-types\"></a>\n Public Types</h2></td></tr>\n <tr class=\"memitem:a92b65e86fcddab35c3f1467dc4f34c50\" id=\"r_a92b65e86fcddab35c3f1467dc4f34c50\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum  </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50\">BasicType</a> { <br />\n   <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a14748a2cbd2710f909689fc503e107b3\">simplex</a>\n , <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a12047f019178e4aabc2f205734fcd410\">cube</a>\n , <a class=\"el\" href=\"a01367.html#a92b65e86fcddab35c3f1467dc4f34c50a2d0ccd2604924f4d8ec28bb3ef5f9e11\">pyramid</a>\n@@ -1059,15 +1059,15 @@\n <p>Create an Id representation of this <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>. </p>\n <p>The returned Id encapsulates the whole information of this <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a> into an enum suitable for being used as template parameter. The <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a> can be reconstructed from the Id using <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a>{id}.</p>\n <p>This function was mainly introduced to support older GCC versions (<10.2). There the implicit conversion from <a class=\"el\" href=\"a01367.html\" title=\"Unique label for each type of entities that can occur in DUNE grids.\">GeometryType</a> to Id failed if a pure r-value template argument based on a static class member was used. (See dune/geometry/test/test-geometrytype-id.cc) </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00173_source.html\">type.hh</a></li>\n+<li><a class=\"el\" href=\"a00227_source.html\">type.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01379.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01379.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::LocalGeometryTypeIndex Class Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Compute per-dimension indices for geometry types. \n <a href=\"a01379.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/typeindex.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00221_source.html\">dune/geometry/typeindex.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\n Static Public Member Functions</h2></td></tr>\n <tr class=\"memitem:a569502a02c4636127665f10986d7d813\" id=\"r_a569502a02c4636127665f10986d7d813\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static constexpr std::size_t </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01379.html#a569502a02c4636127665f10986d7d813\">size</a> (std::size_t dim)</td></tr>\n <tr class=\"memdesc:a569502a02c4636127665f10986d7d813\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute total number of geometry types for the given dimension. <br /></td></tr>\n <tr class=\"separator:a569502a02c4636127665f10986d7d813\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:abe448a646f97b252203f30536a8d304f\" id=\"r_abe448a646f97b252203f30536a8d304f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static constexpr std::size_t </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01379.html#abe448a646f97b252203f30536a8d304f\">index</a> (const <a class=\"el\" href=\"a01367.html\">GeometryType</a> &gt)</td></tr>\n@@ -193,15 +193,15 @@\n </div><div class=\"memdoc\">\n \n <p>compute the geometry type for the given local index and dimension </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00227_source.html\">typeindex.hh</a></li>\n+<li><a class=\"el\" href=\"a00221_source.html\">typeindex.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01383.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01383.html", "unified_diff": "@@ -79,15 +79,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::GlobalGeometryTypeIndex Class Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>Compute indices for geometry types, taking the dimension into account. \n <a href=\"a01383.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00227_source.html\">dune/geometry/typeindex.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00221_source.html\">dune/geometry/typeindex.hh</a>></code></p>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\n Static Public Member Functions</h2></td></tr>\n <tr class=\"memitem:a5bdadff2a016fef44949107e41c25e7c\" id=\"r_a5bdadff2a016fef44949107e41c25e7c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static constexpr std::size_t </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01383.html#a5bdadff2a016fef44949107e41c25e7c\">offset</a> (std::size_t dim)</td></tr>\n <tr class=\"memdesc:a5bdadff2a016fef44949107e41c25e7c\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Compute the starting index for a given dimension including irregular geometry types. <br /></td></tr>\n <tr class=\"separator:a5bdadff2a016fef44949107e41c25e7c\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:a796183678c15cd2a578a925c5bf47724\" id=\"r_a796183678c15cd2a578a925c5bf47724\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static constexpr std::size_t </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a01383.html#a796183678c15cd2a578a925c5bf47724\">size</a> (std::size_t maxdim)</td></tr>\n@@ -183,15 +183,15 @@\n \n <p>Compute total number of geometry types up to and including the given dimension. </p>\n <p>This includes irregular geometry types such as \"None\". </p>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00227_source.html\">typeindex.hh</a></li>\n+<li><a class=\"el\" href=\"a00221_source.html\">typeindex.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01395.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01395.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_virtual_refinement_sub_entity_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_virtual_refinement_sub_entity_iterator_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,255,60\"/>\n <area shape=\"rect\" href=\"a01407.html\" title=\" \" alt=\"\" coords=\"41,108,219,163\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"133,74,133,108,127,108,127,74\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01399.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01399.html", "unified_diff": "@@ -73,15 +73,15 @@\n </div>\n </div><!-- top -->\n <div class=\"header\">\n <div class=\"headertitle\"><div class=\"title\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, dimension > Class Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01403.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01403.html", "unified_diff": "@@ -161,15 +161,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01407.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01407.html", "unified_diff": "@@ -367,15 +367,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01411.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01411.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_virtual_refinement_sub_entity_iterator_back_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_virtual_refinement_sub_entity_iterator_back_special_3_01dimension_00_01_coord_type_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,13,263,67\"/>\n <area shape=\"rect\" href=\"a01423.html\" title=\" \" alt=\"\" coords=\"311,5,487,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"276,37,311,37,311,43,276,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01415.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01415.html", "unified_diff": "@@ -110,15 +110,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01419.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01419.html", "unified_diff": "@@ -181,15 +181,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01423.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01423.html", "unified_diff": "@@ -344,15 +344,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01427.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01427.html", "unified_diff": "@@ -579,15 +579,15 @@\n </table>\n </dd>\n </dl>\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01431.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01431.html", "unified_diff": "@@ -341,15 +341,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01435.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01435.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_virtual_refinement_imp_sub_entity_iterator_back_special_3_01topology_id_00_01_coord_type_00_01coerce_to_id_00_01dimension_00_01codimension_01_4_inherit__map\" id=\"a_dune_1_1_virtual_refinement_imp_sub_entity_iterator_back_special_3_01topology_id_00_01_coord_type_00_01coerce_to_id_00_01dimension_00_01codimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,5,247,75\"/>\n <area shape=\"rect\" href=\"a01431.html\" title=\" \" alt=\"\" coords=\"295,5,549,75\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"261,37,295,37,295,43,261,43\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01439.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01439.html", "unified_diff": "@@ -83,15 +83,15 @@\n <map name=\"a_dune_1_1_virtual_refinement_imp_sub_entity_iterator_back_special_3_01topology_id_00_01_coord_type_00_01coerce_to_id_00_01dimension_00_01dimension_01_4_inherit__map\" id=\"a_dune_1_1_virtual_refinement_imp_sub_entity_iterator_back_special_3_01topology_id_00_01_coord_type_00_01coerce_to_id_00_01dimension_00_01dimension_01_4_inherit__map\">\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"5,108,247,177\"/>\n <area shape=\"rect\" title=\" \" alt=\"\" coords=\"39,5,213,60\"/>\n <area shape=\"poly\" title=\" \" alt=\"\" coords=\"129,74,129,108,123,108,123,74\"/>\n </map>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01443.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01443.html", "unified_diff": "@@ -207,15 +207,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01447.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01447.html", "unified_diff": "@@ -121,15 +121,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01451.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01451.html", "unified_diff": "@@ -121,15 +121,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01455.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01455.html", "unified_diff": "@@ -121,15 +121,15 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01459.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01459.html", "unified_diff": "@@ -82,15 +82,15 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::VirtualRefinement< dimension, CoordType > Class Template Reference<span class=\"mlabels\"><span class=\"mlabel\">abstract</span></span></div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p><a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> base class. \n <a href=\"a01459.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00236_source.html\">dune/geometry/virtualrefinement.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00218_source.html\">dune/geometry/virtualrefinement.hh</a>></code></p>\n <div class=\"dynheader\">\n Inheritance diagram for Dune::VirtualRefinement< dimension, CoordType >:</div>\n <div class=\"dyncontent\">\n <div class=\"center\"><img src=\"a01458.png\" border=\"0\" usemap=\"#a_dune_1_1_virtual_refinement_3_01dimension_00_01_coord_type_01_4_inherit__map\" alt=\"Inheritance graph\"/></div>\n <map name=\"a_dune_1_1_virtual_refinement_3_01dimension_00_01_coord_type_01_4_inherit__map\" id=\"a_dune_1_1_virtual_refinement_3_01dimension_00_01_coord_type_01_4_inherit__map\">\n <area shape=\"rect\" title=\"VirtualRefinement base class.\" alt=\"\" coords=\"11,5,187,45\"/>\n <area shape=\"rect\" href=\"a01427.html\" title=\" \" alt=\"\" coords=\"5,93,192,148\"/>\n@@ -607,16 +607,16 @@\n </tr>\n </table>\n </div><div class=\"memdoc\">\n \n </div>\n </div>\n <hr/>The documentation for this class was generated from the following files:<ul>\n-<li><a class=\"el\" href=\"a00236_source.html\">virtualrefinement.hh</a></li>\n-<li><a class=\"el\" href=\"a00239_source.html\">virtualrefinement.cc</a></li>\n+<li><a class=\"el\" href=\"a00218_source.html\">virtualrefinement.hh</a></li>\n+<li><a class=\"el\" href=\"a00230_source.html\">virtualrefinement.cc</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a01463.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a01463.html", "unified_diff": "@@ -76,21 +76,21 @@\n <div class=\"headertitle\"><div class=\"title\">Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension > Struct Template Reference</div></div>\n </div><!--header-->\n <div class=\"contents\">\n \n <p>codim database of <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> \n <a href=\"a01463.html#details\">More...</a></p>\n \n-<p><code>#include <<a class=\"el\" href=\"a00236_source.html\">dune/geometry/virtualrefinement.hh</a>></code></p>\n+<p><code>#include <<a class=\"el\" href=\"a00218_source.html\">dune/geometry/virtualrefinement.hh</a>></code></p>\n <a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n <div class=\"textblock\"><div class=\"compoundTemplParams\">template<int dimension, class CoordType><br />\n template<int codimension><br />\n struct Dune::VirtualRefinement< dimension, CoordType >::Codim< codimension ></div><p>codim database of <a class=\"el\" href=\"a01459.html\" title=\"VirtualRefinement base class.\">VirtualRefinement</a> </p>\n </div><hr/>The documentation for this struct was generated from the following file:<ul>\n-<li><a class=\"el\" href=\"a00236_source.html\">virtualrefinement.hh</a></li>\n+<li><a class=\"el\" href=\"a00218_source.html\">virtualrefinement.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_000004_000006.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_000004_000006.html", "unified_diff": "@@ -69,14 +69,14 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"contents\">\n-<h3>geometry → refinement Relation</h3><table class=\"dirtab\"><tr class=\"dirtab\"><th class=\"dirtab\">File in dune/geometry</th><th class=\"dirtab\">Includes file in dune/geometry/refinement</th></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00206.html\">base.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00209.html\">hcube.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00194.html\">hcubetriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00203.html\">prismtriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00197.html\">pyramidtriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00200.html\">simplex.cc</a></td></tr></table></div><!-- contents -->\n+<h3>geometry → refinement Relation</h3><table class=\"dirtab\"><tr class=\"dirtab\"><th class=\"dirtab\">File in dune/geometry</th><th class=\"dirtab\">Includes file in dune/geometry/refinement</th></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00236.html\">base.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00242.html\">hcube.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00248.html\">hcubetriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00245.html\">prismtriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00239.html\">pyramidtriangulation.cc</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00233.html\">simplex.cc</a></td></tr></table></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_000004_000007.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_000004_000007.html", "unified_diff": "@@ -69,14 +69,14 @@\n \n <div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"navelem\"><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\">dune</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\">geometry</a></li> </ul>\n </div>\n </div><!-- top -->\n <div class=\"contents\">\n-<h3>geometry → utility Relation</h3><table class=\"dirtab\"><tr class=\"dirtab\"><th class=\"dirtab\">File in dune/geometry</th><th class=\"dirtab\">Includes file in dune/geometry/utility</th></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00245.html\">localfiniteelementgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00215.html\">algorithms.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00245.html\">localfiniteelementgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00218.html\">convergence.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00233.html\">mappedgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00215.html\">algorithms.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00233.html\">mappedgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00218.html\">convergence.hh</a></td></tr></table></div><!-- contents -->\n+<h3>geometry → utility Relation</h3><table class=\"dirtab\"><tr class=\"dirtab\"><th class=\"dirtab\">File in dune/geometry</th><th class=\"dirtab\">Includes file in dune/geometry/utility</th></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00173.html\">localfiniteelementgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00203.html\">algorithms.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00173.html\">localfiniteelementgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00197.html\">convergence.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00170.html\">mappedgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00203.html\">algorithms.hh</a></td></tr><tr class=\"dirtab\"><td class=\"dirtab\"><a class=\"el\" href=\"a00170.html\">mappedgeometry.hh</a></td><td class=\"dirtab\"><a class=\"el\" href=\"a00197.html\">convergence.hh</a></td></tr></table></div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n </html>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_18620fa9f137864b479f21357cfac10d.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_18620fa9f137864b479f21357cfac10d.html", "unified_diff": "@@ -97,56 +97,56 @@\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfclosed\"></span> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\">refinement</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfclosed\"></span> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\">utility</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table><table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\n Files</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00170_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00170.html\">affinegeometry.hh</a></td></tr>\n-<tr class=\"memdesc:a00170\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">An implementation of the Geometry interface for affine geometries. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00191_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00191.html\">affinegeometry.hh</a></td></tr>\n+<tr class=\"memdesc:a00191\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">An implementation of the Geometry interface for affine geometries. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00191_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00191.html\">axisalignedcubegeometry.hh</a></td></tr>\n-<tr class=\"memdesc:a00191\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A geometry implementation for axis-aligned hypercubes. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00194_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00194.html\">axisalignedcubegeometry.hh</a></td></tr>\n+<tr class=\"memdesc:a00194\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A geometry implementation for axis-aligned hypercubes. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00230_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00230.html\">dimension.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00209_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00209.html\">dimension.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00179_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00179.html\">generalvertexorder.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00212_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00212.html\">generalvertexorder.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00245_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00245.html\">localfiniteelementgeometry.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00173_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00173.html\">localfiniteelementgeometry.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00233_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00233.html\">mappedgeometry.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00170_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00170.html\">mappedgeometry.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00224_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00224.html\">multilineargeometry.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00212_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00212.html\">quadraturerules.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00188_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00188.html\">quadraturerules.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00185_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00185.html\">referenceelement.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00206_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00206.html\">referenceelement.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"></span> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00248.html\">referenceelementimplementation.cc</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"></span> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00185.html\">referenceelementimplementation.cc</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00188_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00188.html\">referenceelementimplementation.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00215_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00215.html\">referenceelementimplementation.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00182_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00182.html\">referenceelements.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n <tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00176_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00176.html\">refinement.hh</a></td></tr>\n <tr class=\"memdesc:a00176\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file simply includes all <a class=\"el\" href=\"a00260.html\">Refinement</a> implementations so you don't have to do them separately. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00242_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00242.html\">topologyfactory.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00179_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00179.html\">topologyfactory.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00173_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00173.html\">type.hh</a></td></tr>\n-<tr class=\"memdesc:a00173\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A unique label for each type of element that can occur in a grid. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00227_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00227.html\">type.hh</a></td></tr>\n+<tr class=\"memdesc:a00227\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">A unique label for each type of element that can occur in a grid. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00227_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00227.html\">typeindex.hh</a></td></tr>\n-<tr class=\"memdesc:a00227\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Helper classes to provide indices for geometrytypes for use in a vector. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00221_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00221.html\">typeindex.hh</a></td></tr>\n+<tr class=\"memdesc:a00221\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">Helper classes to provide indices for geometrytypes for use in a vector. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00239_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00239.html\">virtualrefinement.cc</a></td></tr>\n-<tr class=\"memdesc:a00239\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the virtual wrapper around refinement. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00230_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00230.html\">virtualrefinement.cc</a></td></tr>\n+<tr class=\"memdesc:a00230\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the virtual wrapper around refinement. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00236_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00236.html\">virtualrefinement.hh</a></td></tr>\n-<tr class=\"memdesc:a00236\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the virtual wrapper around refinement. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00218_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00218.html\">virtualrefinement.hh</a></td></tr>\n+<tr class=\"memdesc:a00218\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the virtual wrapper around refinement. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_428ed1c935e77406fcbfdccd4ee3f7a2.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_428ed1c935e77406fcbfdccd4ee3f7a2.html", "unified_diff": "@@ -84,19 +84,19 @@\n <area shape=\"rect\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\" title=\"utility\" alt=\"\" coords=\"28,52,81,77\"/>\n <area shape=\"rect\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\" title=\"geometry\" alt=\"\" coords=\"16,16,93,88\"/>\n </map>\n </div>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\n Files</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00215_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00215.html\">algorithms.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00203_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00203.html\">algorithms.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00218_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00218.html\">convergence.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00197_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00197.html\">convergence.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00221_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00221.html\">typefromvertexcount.hh</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00200_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00200.html\">typefromvertexcount.hh</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_b609f53bbb5e26b8e9292001c59476a3.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dir_b609f53bbb5e26b8e9292001c59476a3.html", "unified_diff": "@@ -84,29 +84,29 @@\n <area shape=\"rect\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\" title=\"refinement\" alt=\"\" coords=\"27,52,109,77\"/>\n <area shape=\"rect\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\" title=\"geometry\" alt=\"\" coords=\"16,16,120,88\"/>\n </map>\n </div>\n <table class=\"memberdecls\">\n <tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\n Files</h2></td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00206_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00206.html\">base.cc</a></td></tr>\n-<tr class=\"memdesc:a00206\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00236_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00236.html\">base.cc</a></td></tr>\n+<tr class=\"memdesc:a00236\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation. <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00209_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00209.html\">hcube.cc</a></td></tr>\n-<tr class=\"memdesc:a00209\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00242_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00242.html\">hcube.cc</a></td></tr>\n+<tr class=\"memdesc:a00242\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.). <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00194_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00194.html\">hcubetriangulation.cc</a></td></tr>\n-<tr class=\"memdesc:a00194\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00248_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00248.html\">hcubetriangulation.cc</a></td></tr>\n+<tr class=\"memdesc:a00248\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00203_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00203.html\">prismtriangulation.cc</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00245_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00245.html\">prismtriangulation.cc</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00197_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00197.html\">pyramidtriangulation.cc</a></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00239_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00239.html\">pyramidtriangulation.cc</a></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n-<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00200_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00200.html\">simplex.cc</a></td></tr>\n-<tr class=\"memdesc:a00200\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) <br /></td></tr>\n+<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a href=\"a00233_source.html\"><span class=\"icondoc\"></span></a> </td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"a00233.html\">simplex.cc</a></td></tr>\n+<tr class=\"memdesc:a00233\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) <br /></td></tr>\n <tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n </table>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/dune-geometry.tag.gz", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/dune-geometry.tag.gz", "unified_diff": null, "details": [{"source1": "dune-geometry.tag", "source2": "dune-geometry.tag", "unified_diff": null, "details": [{"source1": "dune-geometry.tag", "source2": "dune-geometry.tag", "unified_diff": "@@ -1,107 +1,107 @@\n <?xml version=\"1.0\" encoding=\"utf-8\"?>\n <tagfile doxygen_version=\"1.9.8\">\n <compound kind=\"file\">\n <name>referenceelementspage.txt</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/doc/appl/refelements/</path>\n- <filename>a00041.html</filename>\n+ <filename>a00080.html</filename>\n </compound>\n <compound kind=\"file\">\n <name>mainpage.txt</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/doc/doxygen/</path>\n <filename>a00164.html</filename>\n </compound>\n <compound kind=\"file\">\n <name>modules.txt</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/doc/doxygen/</path>\n <filename>a00167.html</filename>\n </compound>\n <compound kind=\"file\">\n <name>affinegeometry.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00170.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <filename>a00191.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <class kind=\"class\">Dune::AffineGeometry</class>\n <namespace>Dune</namespace>\n <namespace>Dune::Geo</namespace>\n </compound>\n <compound kind=\"file\">\n <name>axisalignedcubegeometry.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00191.html</filename>\n+ <filename>a00194.html</filename>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <class kind=\"class\">Dune::AxisAlignedCubeGeometry</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>dimension.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00230.html</filename>\n+ <filename>a00209.html</filename>\n <class kind=\"struct\">Dune::Dim</class>\n <class kind=\"struct\">Dune::Codim</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>generalvertexorder.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00179.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n+ <filename>a00212.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n <class kind=\"class\">Dune::GeneralVertexOrder</class>\n <class kind=\"class\">Dune::GeneralVertexOrder::iterator</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>localfiniteelementgeometry.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00245.html</filename>\n- <includes id=\"a00170\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n- <includes id=\"a00212\" name=\"quadraturerules.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/quadraturerules.hh</includes>\n+ <filename>a00173.html</filename>\n+ <includes id=\"a00191\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n+ <includes id=\"a00188\" name=\"quadraturerules.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/quadraturerules.hh</includes>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00215\" name=\"algorithms.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/algorithms.hh</includes>\n- <includes id=\"a00218\" name=\"convergence.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/convergence.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00203\" name=\"algorithms.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/algorithms.hh</includes>\n+ <includes id=\"a00197\" name=\"convergence.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/convergence.hh</includes>\n <class kind=\"class\">Dune::LocalFiniteElementGeometry</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>mappedgeometry.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00233.html</filename>\n- <includes id=\"a00170\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n- <includes id=\"a00212\" name=\"quadraturerules.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/quadraturerules.hh</includes>\n+ <filename>a00170.html</filename>\n+ <includes id=\"a00191\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n+ <includes id=\"a00188\" name=\"quadraturerules.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/quadraturerules.hh</includes>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00215\" name=\"algorithms.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/algorithms.hh</includes>\n- <includes id=\"a00218\" name=\"convergence.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/convergence.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00203\" name=\"algorithms.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/algorithms.hh</includes>\n+ <includes id=\"a00197\" name=\"convergence.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/utility/convergence.hh</includes>\n <class kind=\"class\">Dune::MappedGeometry</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>multilineargeometry.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n <filename>a00224.html</filename>\n- <includes id=\"a00170\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n+ <includes id=\"a00191\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <class kind=\"struct\">Dune::MultiLinearGeometryTraits</class>\n <class kind=\"struct\">Dune::MultiLinearGeometryTraits::CornerStorage</class>\n <class kind=\"struct\">Dune::MultiLinearGeometryTraits::hasSingleGeometryType</class>\n <class kind=\"class\">Dune::MultiLinearGeometry</class>\n <class kind=\"class\">Dune::MultiLinearGeometry::JacobianInverseTransposed</class>\n <class kind=\"class\">Dune::CachedMultiLinearGeometry</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>quadraturerules.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00212.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00227\" name=\"typeindex.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/typeindex.hh</includes>\n+ <filename>a00188.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00221\" name=\"typeindex.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/typeindex.hh</includes>\n <class kind=\"struct\">std::tuple_size< Dune::QuadraturePoint< ct, dim > ></class>\n <class kind=\"struct\">std::tuple_element< 0, Dune::QuadraturePoint< ct, dim > ></class>\n <class kind=\"struct\">std::tuple_element< 1, Dune::QuadraturePoint< ct, dim > ></class>\n <class kind=\"class\">Dune::QuadratureOrderOutOfRange</class>\n <class kind=\"class\">Dune::QuadraturePoint</class>\n <class kind=\"class\">Dune::QuadratureRule</class>\n <class kind=\"class\">Dune::QuadratureRules</class>\n@@ -112,206 +112,206 @@\n <class kind=\"class\">Dune::QuadratureRuleFactory< ctype, 3 ></class>\n <namespace>Dune</namespace>\n <namespace>std</namespace>\n <namespace>Dune::QuadratureType</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_INCLUDING_IMPLEMENTATION</name>\n- <anchorfile>a00212.html</anchorfile>\n+ <anchorfile>a00188.html</anchorfile>\n <anchor>a0aeda817d7161b7c1afd8dd15ff12f17</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>referenceelement.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00185.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <filename>a00206.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <class kind=\"class\">Dune::Geo::ReferenceElement</class>\n <class kind=\"struct\">Dune::Geo::ReferenceElement::Codim</class>\n <namespace>Dune</namespace>\n <namespace>Dune::Geo</namespace>\n </compound>\n <compound kind=\"file\">\n <name>referenceelementimplementation.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00248.html</filename>\n- <includes id=\"a00188\" name=\"referenceelementimplementation.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelementimplementation.hh</includes>\n+ <filename>a00185.html</filename>\n+ <includes id=\"a00215\" name=\"referenceelementimplementation.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelementimplementation.hh</includes>\n <namespace>Dune</namespace>\n <namespace>Dune::Geo</namespace>\n </compound>\n <compound kind=\"file\">\n <name>referenceelementimplementation.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00188.html</filename>\n- <includes id=\"a00185\" name=\"referenceelement.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelement.hh</includes>\n- <includes id=\"a00170\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <filename>a00215.html</filename>\n+ <includes id=\"a00206\" name=\"referenceelement.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelement.hh</includes>\n+ <includes id=\"a00191\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <namespace>Dune</namespace>\n <namespace>Dune::Geo</namespace>\n </compound>\n <compound kind=\"file\">\n <name>referenceelements.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n <filename>a00182.html</filename>\n- <includes id=\"a00230\" name=\"dimension.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/dimension.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00185\" name=\"referenceelement.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelement.hh</includes>\n- <includes id=\"a00188\" name=\"referenceelementimplementation.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelementimplementation.hh</includes>\n+ <includes id=\"a00209\" name=\"dimension.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/dimension.hh</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00206\" name=\"referenceelement.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelement.hh</includes>\n+ <includes id=\"a00215\" name=\"referenceelementimplementation.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelementimplementation.hh</includes>\n <class kind=\"struct\">Dune::Geo::ReferenceElements</class>\n <namespace>Dune</namespace>\n <namespace>Dune::Geo</namespace>\n <namespace>Dune::Transitional</namespace>\n </compound>\n <compound kind=\"file\">\n <name>refinement.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n <filename>a00176.html</filename>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/base.cc</includes>\n- <includes id=\"a00209\" name=\"hcube.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/hcube.cc</includes>\n- <includes id=\"a00200\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/simplex.cc</includes>\n- <includes id=\"a00194\" name=\"hcubetriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/hcubetriangulation.cc</includes>\n- <includes id=\"a00203\" name=\"prismtriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/prismtriangulation.cc</includes>\n- <includes id=\"a00197\" name=\"pyramidtriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/pyramidtriangulation.cc</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/base.cc</includes>\n+ <includes id=\"a00242\" name=\"hcube.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/hcube.cc</includes>\n+ <includes id=\"a00233\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/simplex.cc</includes>\n+ <includes id=\"a00248\" name=\"hcubetriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/hcubetriangulation.cc</includes>\n+ <includes id=\"a00245\" name=\"prismtriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/prismtriangulation.cc</includes>\n+ <includes id=\"a00239\" name=\"pyramidtriangulation.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement/pyramidtriangulation.cc</includes>\n </compound>\n <compound kind=\"file\">\n <name>base.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00206.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <filename>a00236.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <class kind=\"struct\">Dune::RefinementImp::Traits</class>\n <class kind=\"class\">Dune::RefinementIntervals</class>\n <class kind=\"class\">Dune::StaticRefinement</class>\n <class kind=\"struct\">Dune::StaticRefinement::Codim</class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_REFINEMENT_BASE_CC</name>\n- <anchorfile>a00206.html</anchorfile>\n+ <anchorfile>a00236.html</anchorfile>\n <anchor>ab8232ef779e57c3676c54a73bd759f72</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>hcube.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00209.html</filename>\n+ <filename>a00242.html</filename>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00191\" name=\"axisalignedcubegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/axisalignedcubegeometry.hh</includes>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n+ <includes id=\"a00194\" name=\"axisalignedcubegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/axisalignedcubegeometry.hh</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n <class kind=\"class\">Dune::RefinementImp::HCube::RefinementImp</class>\n <class kind=\"struct\">Dune::RefinementImp::HCube::RefinementImp::Codim</class>\n <class kind=\"class\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial</class>\n <class kind=\"class\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::RefinementImp::HCube::RefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::RefinementImp::HCube::RefinementImp::Codim< codimension ></class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <namespace>Dune::RefinementImp::HCube</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC</name>\n- <anchorfile>a00209.html</anchorfile>\n+ <anchorfile>a00242.html</anchorfile>\n <anchor>a2be7a03e64dedaaa1cf5c7c8e2a9cf60</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>hcubetriangulation.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00194.html</filename>\n+ <filename>a00248.html</filename>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n- <includes id=\"a00200\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n+ <includes id=\"a00233\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n <class kind=\"class\">Dune::RefinementImp::HCubeTriangulation::RefinementImp</class>\n <class kind=\"struct\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim</class>\n <class kind=\"class\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::RefinementImp::HCubeTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::RefinementImp::HCubeTriangulation::RefinementImp::Codim< codimension ></class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <namespace>Dune::RefinementImp::HCubeTriangulation</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC</name>\n- <anchorfile>a00194.html</anchorfile>\n+ <anchorfile>a00248.html</anchorfile>\n <anchor>a3fe24de9b756cd18f014979a41cb0843</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>prismtriangulation.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00203.html</filename>\n+ <filename>a00245.html</filename>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n- <includes id=\"a00200\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n+ <includes id=\"a00233\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n <class kind=\"class\">Dune::RefinementImp::PrismTriangulation::RefinementImp</class>\n <class kind=\"struct\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim</class>\n <class kind=\"class\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::RefinementImp::PrismTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::RefinementImp::PrismTriangulation::RefinementImp::Codim< codimension ></class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <namespace>Dune::RefinementImp::PrismTriangulation</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC</name>\n- <anchorfile>a00203.html</anchorfile>\n+ <anchorfile>a00245.html</anchorfile>\n <anchor>ae56eb72b98f97f57cc224eb9b4394ef8</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>pyramidtriangulation.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00197.html</filename>\n+ <filename>a00239.html</filename>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n- <includes id=\"a00200\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n+ <includes id=\"a00233\" name=\"simplex.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">simplex.cc</includes>\n <class kind=\"class\">Dune::RefinementImp::PyramidTriangulation::RefinementImp</class>\n <class kind=\"struct\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim</class>\n <class kind=\"class\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::RefinementImp::PyramidTriangulation::RefinementIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::RefinementImp::PyramidTriangulation::RefinementImp::Codim< codimension ></class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <namespace>Dune::RefinementImp::PyramidTriangulation</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC</name>\n- <anchorfile>a00197.html</anchorfile>\n+ <anchorfile>a00239.html</anchorfile>\n <anchor>a5f431ee98541c17b3d9aea2dbc726941</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>simplex.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/refinement/</path>\n- <filename>a00200.html</filename>\n+ <filename>a00233.html</filename>\n <includes id=\"a00224\" name=\"multilineargeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/multilineargeometry.hh</includes>\n <includes id=\"a00182\" name=\"referenceelements.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/referenceelements.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00206\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00236\" name=\"base.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">base.cc</includes>\n <class kind=\"class\">Dune::RefinementImp::Simplex::RefinementImp</class>\n <class kind=\"struct\">Dune::RefinementImp::Simplex::RefinementImp::Codim</class>\n <class kind=\"class\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::RefinementImp::Simplex::RefinementImp::Codim< codimension ></class>\n <namespace>Dune</namespace>\n <namespace>Dune::RefinementImp</namespace>\n <namespace>Dune::RefinementImp::Simplex</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC</name>\n- <anchorfile>a00200.html</anchorfile>\n+ <anchorfile>a00233.html</anchorfile>\n <anchor>a944407dc4f6f9a372b10b69bbb5a0792</anchor>\n <arglist/>\n </member>\n <member kind=\"function\">\n <type>int</type>\n <name>pointIndex</name>\n <anchorfile>a00274.html</anchorfile>\n@@ -367,63 +367,63 @@\n <anchor>afd47205aa1691498b073d9681fb23f6d</anchor>\n <arglist>(FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)</arglist>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>topologyfactory.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00242.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n- <includes id=\"a00227\" name=\"typeindex.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/typeindex.hh</includes>\n+ <filename>a00179.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <includes id=\"a00221\" name=\"typeindex.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/typeindex.hh</includes>\n <class kind=\"struct\">Dune::TopologyFactory</class>\n <class kind=\"struct\">Dune::TopologySingletonFactory</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>type.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00173.html</filename>\n+ <filename>a00227.html</filename>\n <class kind=\"class\">Dune::GeometryType</class>\n <namespace>Dune</namespace>\n <namespace>Dune::GeometryTypes</namespace>\n </compound>\n <compound kind=\"file\">\n <name>typeindex.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00227.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n+ <filename>a00221.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n <class kind=\"class\">Dune::LocalGeometryTypeIndex</class>\n <class kind=\"class\">Dune::GlobalGeometryTypeIndex</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>algorithms.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/utility/</path>\n- <filename>a00215.html</filename>\n- <includes id=\"a00170\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n+ <filename>a00203.html</filename>\n+ <includes id=\"a00191\" name=\"affinegeometry.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/affinegeometry.hh</includes>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>convergence.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/utility/</path>\n- <filename>a00218.html</filename>\n+ <filename>a00197.html</filename>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>typefromvertexcount.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/utility/</path>\n- <filename>a00221.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n+ <filename>a00200.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"no\" import=\"no\" module=\"no\" objc=\"no\">dune/geometry/type.hh</includes>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"file\">\n <name>virtualrefinement.cc</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00239.html</filename>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n+ <filename>a00230.html</filename>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n <includes id=\"a00176\" name=\"refinement.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement.hh</includes>\n <class kind=\"class\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::VirtualRefinementSubEntityIteratorSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::VirtualRefinement::Codim< codimension ></class>\n <class kind=\"class\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, dimension ></class>\n <class kind=\"class\">Dune::VirtualRefinementSubEntityIteratorBackSpecial< dimension, CoordType, 0 ></class>\n <class kind=\"class\">Dune::VirtualRefinement::SubEntityIteratorBack</class>\n@@ -434,26 +434,26 @@\n <class kind=\"class\">Dune::RefinementBuilder</class>\n <class kind=\"class\">Dune::RefinementBuilder< 1, CoordType ></class>\n <class kind=\"class\">Dune::RefinementBuilder< 3, CoordType ></class>\n <namespace>Dune</namespace>\n <member kind=\"define\">\n <type>#define</type>\n <name>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC</name>\n- <anchorfile>a00239.html</anchorfile>\n+ <anchorfile>a00230.html</anchorfile>\n <anchor>ac82d420bff6cce87d06ad71b4f1cb0c8</anchor>\n <arglist/>\n </member>\n </compound>\n <compound kind=\"file\">\n <name>virtualrefinement.hh</name>\n <path>/build/reproducible-path/dune-geometry-2.10.0/dune/geometry/</path>\n- <filename>a00236.html</filename>\n+ <filename>a00218.html</filename>\n <includes id=\"a00176\" name=\"refinement.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">refinement.hh</includes>\n- <includes id=\"a00173\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n- <includes id=\"a00239\" name=\"virtualrefinement.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">virtualrefinement.cc</includes>\n+ <includes id=\"a00227\" name=\"type.hh\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">type.hh</includes>\n+ <includes id=\"a00230\" name=\"virtualrefinement.cc\" local=\"yes\" import=\"no\" module=\"no\" objc=\"no\">virtualrefinement.cc</includes>\n <class kind=\"class\">Dune::VirtualRefinement</class>\n <class kind=\"struct\">Dune::VirtualRefinement::Codim</class>\n <namespace>Dune</namespace>\n </compound>\n <compound kind=\"class\">\n <name>Dune::AffineGeometry</name>\n <filename>a01107.html</filename>\n"}]}]}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/files.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/files.html", "unified_diff": "@@ -77,42 +77,42 @@\n <tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\"> </span><span id=\"arr_0_\" class=\"arrow\" onclick=\"toggleFolder('0_')\">▼</span><span id=\"img_0_\" class=\"iconfopen\" onclick=\"toggleFolder('0_')\"> </span><a class=\"el\" href=\"dir_e68e8157741866f444e17edd764ebbae.html\" target=\"_self\">doc</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_0_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\"> </span><span id=\"arr_0_0_\" class=\"arrow\" onclick=\"toggleFolder('0_0_')\">▼</span><span id=\"img_0_0_\" class=\"iconfopen\" onclick=\"toggleFolder('0_0_')\"> </span><a class=\"el\" href=\"dir_8c28f2953344a167049ba6db5a27148a.html\" target=\"_self\">appl</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_0_0_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><span class=\"iconfclosed\"></span><a class=\"el\" href=\"dir_de8ef2d1b4283b99fcb86ec9d2fa66db.html\" target=\"_self\">refelements</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_0_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\"> </span><span class=\"iconfclosed\"></span><a class=\"el\" href=\"dir_04f2ecc425faf0d475a3caf484e551f3.html\" target=\"_self\">doxygen</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\"> </span><span id=\"arr_1_\" class=\"arrow\" onclick=\"toggleFolder('1_')\">▼</span><span id=\"img_1_\" class=\"iconfopen\" onclick=\"toggleFolder('1_')\"> </span><a class=\"el\" href=\"dir_5e69be5995c9f5d42bf491ae6f29600e.html\" target=\"_self\">dune</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\"> </span><span id=\"arr_1_0_\" class=\"arrow\" onclick=\"toggleFolder('1_0_')\">▼</span><span id=\"img_1_0_\" class=\"iconfopen\" onclick=\"toggleFolder('1_0_')\"> </span><a class=\"el\" href=\"dir_18620fa9f137864b479f21357cfac10d.html\" target=\"_self\">geometry</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_0_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\"> </span><span id=\"arr_1_0_0_\" class=\"arrow\" onclick=\"toggleFolder('1_0_0_')\">▼</span><span id=\"img_1_0_0_\" class=\"iconfopen\" onclick=\"toggleFolder('1_0_0_')\"> </span><a class=\"el\" href=\"dir_b609f53bbb5e26b8e9292001c59476a3.html\" target=\"_self\">refinement</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_0_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00206_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00206.html\" target=\"_self\">base.cc</a></td><td class=\"desc\">This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation </td></tr>\n-<tr id=\"row_1_0_0_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00209_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00209.html\" target=\"_self\">hcube.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.) </td></tr>\n-<tr id=\"row_1_0_0_2_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00194_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00194.html\" target=\"_self\">hcubetriangulation.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) </td></tr>\n-<tr id=\"row_1_0_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00203_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00203.html\" target=\"_self\">prismtriangulation.cc</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_0_4_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00197_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00197.html\" target=\"_self\">pyramidtriangulation.cc</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00200_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00200.html\" target=\"_self\">simplex.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) </td></tr>\n+<tr id=\"row_1_0_0_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00236_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00236.html\" target=\"_self\">base.cc</a></td><td class=\"desc\">This file contains the parts independent of a particular <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation </td></tr>\n+<tr id=\"row_1_0_0_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00242_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00242.html\" target=\"_self\">hcube.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for hypercubes (quadrilaterals, hexahedrons, etc.) </td></tr>\n+<tr id=\"row_1_0_0_2_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00248_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00248.html\" target=\"_self\">hcubetriangulation.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for triangulating hypercubes (quadrilateral -> triangle, hexahedron -> tetrahedron) </td></tr>\n+<tr id=\"row_1_0_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00245_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00245.html\" target=\"_self\">prismtriangulation.cc</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_0_4_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00239_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00239.html\" target=\"_self\">pyramidtriangulation.cc</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00233_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00233.html\" target=\"_self\">simplex.cc</a></td><td class=\"desc\">This file contains the <a class=\"el\" href=\"a00260.html\">Refinement</a> implementation for simplices (triangles, tetrahedrons...) </td></tr>\n <tr id=\"row_1_0_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\"> </span><span id=\"arr_1_0_1_\" class=\"arrow\" onclick=\"toggleFolder('1_0_1_')\">▼</span><span id=\"img_1_0_1_\" class=\"iconfopen\" onclick=\"toggleFolder('1_0_1_')\"> </span><a class=\"el\" href=\"dir_428ed1c935e77406fcbfdccd4ee3f7a2.html\" target=\"_self\">utility</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_1_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00215_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00215.html\" target=\"_self\">algorithms.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_1_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00218_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00218.html\" target=\"_self\">convergence.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_1_2_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00221_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00221.html\" target=\"_self\">typefromvertexcount.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_2_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00170_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00170.html\" target=\"_self\">affinegeometry.hh</a></td><td class=\"desc\">An implementation of the Geometry interface for affine geometries </td></tr>\n-<tr id=\"row_1_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00191_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00191.html\" target=\"_self\">axisalignedcubegeometry.hh</a></td><td class=\"desc\">A geometry implementation for axis-aligned hypercubes </td></tr>\n-<tr id=\"row_1_0_4_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00230_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00230.html\" target=\"_self\">dimension.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00179_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00179.html\" target=\"_self\">generalvertexorder.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_6_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00245_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00245.html\" target=\"_self\">localfiniteelementgeometry.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_7_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00233_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00233.html\" target=\"_self\">mappedgeometry.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_1_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00203_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00203.html\" target=\"_self\">algorithms.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_1_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00197_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00197.html\" target=\"_self\">convergence.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_1_2_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\"> </span><a href=\"a00200_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00200.html\" target=\"_self\">typefromvertexcount.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_2_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00191_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00191.html\" target=\"_self\">affinegeometry.hh</a></td><td class=\"desc\">An implementation of the Geometry interface for affine geometries </td></tr>\n+<tr id=\"row_1_0_3_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00194_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00194.html\" target=\"_self\">axisalignedcubegeometry.hh</a></td><td class=\"desc\">A geometry implementation for axis-aligned hypercubes </td></tr>\n+<tr id=\"row_1_0_4_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00209_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00209.html\" target=\"_self\">dimension.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_5_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00212_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00212.html\" target=\"_self\">generalvertexorder.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_6_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00173_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00173.html\" target=\"_self\">localfiniteelementgeometry.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_7_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00170_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00170.html\" target=\"_self\">mappedgeometry.hh</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_0_8_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00224_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00224.html\" target=\"_self\">multilineargeometry.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_9_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00212_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00212.html\" target=\"_self\">quadraturerules.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_10_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00185_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00185.html\" target=\"_self\">referenceelement.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_11_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><span class=\"icondoc\"></span><a class=\"el\" href=\"a00248.html\" target=\"_self\">referenceelementimplementation.cc</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_12_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00188_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00188.html\" target=\"_self\">referenceelementimplementation.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_9_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00188_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00188.html\" target=\"_self\">quadraturerules.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_10_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00206_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00206.html\" target=\"_self\">referenceelement.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_11_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><span class=\"icondoc\"></span><a class=\"el\" href=\"a00185.html\" target=\"_self\">referenceelementimplementation.cc</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_12_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00215_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00215.html\" target=\"_self\">referenceelementimplementation.hh</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_0_13_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00182_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00182.html\" target=\"_self\">referenceelements.hh</a></td><td class=\"desc\"></td></tr>\n <tr id=\"row_1_0_14_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00176_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00176.html\" target=\"_self\">refinement.hh</a></td><td class=\"desc\">This file simply includes all <a class=\"el\" href=\"a00260.html\">Refinement</a> implementations so you don't have to do them separately </td></tr>\n-<tr id=\"row_1_0_15_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00242_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00242.html\" target=\"_self\">topologyfactory.hh</a></td><td class=\"desc\"></td></tr>\n-<tr id=\"row_1_0_16_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00173_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00173.html\" target=\"_self\">type.hh</a></td><td class=\"desc\">A unique label for each type of element that can occur in a grid </td></tr>\n-<tr id=\"row_1_0_17_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00227_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00227.html\" target=\"_self\">typeindex.hh</a></td><td class=\"desc\">Helper classes to provide indices for geometrytypes for use in a vector </td></tr>\n-<tr id=\"row_1_0_18_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00239_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00239.html\" target=\"_self\">virtualrefinement.cc</a></td><td class=\"desc\">This file contains the virtual wrapper around refinement </td></tr>\n-<tr id=\"row_1_0_19_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00236_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00236.html\" target=\"_self\">virtualrefinement.hh</a></td><td class=\"desc\">This file contains the virtual wrapper around refinement </td></tr>\n+<tr id=\"row_1_0_15_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00179_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00179.html\" target=\"_self\">topologyfactory.hh</a></td><td class=\"desc\"></td></tr>\n+<tr id=\"row_1_0_16_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00227_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00227.html\" target=\"_self\">type.hh</a></td><td class=\"desc\">A unique label for each type of element that can occur in a grid </td></tr>\n+<tr id=\"row_1_0_17_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00221_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00221.html\" target=\"_self\">typeindex.hh</a></td><td class=\"desc\">Helper classes to provide indices for geometrytypes for use in a vector </td></tr>\n+<tr id=\"row_1_0_18_\" class=\"odd\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00230_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00230.html\" target=\"_self\">virtualrefinement.cc</a></td><td class=\"desc\">This file contains the virtual wrapper around refinement </td></tr>\n+<tr id=\"row_1_0_19_\" class=\"even\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\"> </span><a href=\"a00218_source.html\"><span class=\"icondoc\"></span></a><a class=\"el\" href=\"a00218.html\" target=\"_self\">virtualrefinement.hh</a></td><td class=\"desc\">This file contains the virtual wrapper around refinement </td></tr>\n </table>\n </div><!-- directory -->\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/globals.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/globals.html", "unified_diff": "@@ -66,22 +66,22 @@\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"contents\">\n <div class=\"textblock\">Here is a list of all file members with links to the files they belong to:</div><ul>\n-<li>DUNE_GEOMETRY_REFINEMENT_BASE_CC : <a class=\"el\" href=\"a00206.html#ab8232ef779e57c3676c54a73bd759f72\">base.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC : <a class=\"el\" href=\"a00209.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">hcube.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC : <a class=\"el\" href=\"a00194.html#a3fe24de9b756cd18f014979a41cb0843\">hcubetriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC : <a class=\"el\" href=\"a00203.html#ae56eb72b98f97f57cc224eb9b4394ef8\">prismtriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC : <a class=\"el\" href=\"a00197.html#a5f431ee98541c17b3d9aea2dbc726941\">pyramidtriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC : <a class=\"el\" href=\"a00239.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">virtualrefinement.cc</a></li>\n-<li>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC : <a class=\"el\" href=\"a00200.html#a944407dc4f6f9a372b10b69bbb5a0792\">simplex.cc</a></li>\n-<li>DUNE_INCLUDING_IMPLEMENTATION : <a class=\"el\" href=\"a00212.html#a0aeda817d7161b7c1afd8dd15ff12f17\">quadraturerules.hh</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_BASE_CC : <a class=\"el\" href=\"a00236.html#ab8232ef779e57c3676c54a73bd759f72\">base.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC : <a class=\"el\" href=\"a00242.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">hcube.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC : <a class=\"el\" href=\"a00248.html#a3fe24de9b756cd18f014979a41cb0843\">hcubetriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC : <a class=\"el\" href=\"a00245.html#ae56eb72b98f97f57cc224eb9b4394ef8\">prismtriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC : <a class=\"el\" href=\"a00239.html#a5f431ee98541c17b3d9aea2dbc726941\">pyramidtriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC : <a class=\"el\" href=\"a00230.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">virtualrefinement.cc</a></li>\n+<li>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC : <a class=\"el\" href=\"a00233.html#a944407dc4f6f9a372b10b69bbb5a0792\">simplex.cc</a></li>\n+<li>DUNE_INCLUDING_IMPLEMENTATION : <a class=\"el\" href=\"a00188.html#a0aeda817d7161b7c1afd8dd15ff12f17\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/globals_defs.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/globals_defs.html", "unified_diff": "@@ -66,22 +66,22 @@\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"contents\">\n <div class=\"textblock\">Here is a list of all macros with links to the files they belong to:</div><ul>\n-<li>DUNE_GEOMETRY_REFINEMENT_BASE_CC : <a class=\"el\" href=\"a00206.html#ab8232ef779e57c3676c54a73bd759f72\">base.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC : <a class=\"el\" href=\"a00209.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">hcube.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC : <a class=\"el\" href=\"a00194.html#a3fe24de9b756cd18f014979a41cb0843\">hcubetriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC : <a class=\"el\" href=\"a00203.html#ae56eb72b98f97f57cc224eb9b4394ef8\">prismtriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC : <a class=\"el\" href=\"a00197.html#a5f431ee98541c17b3d9aea2dbc726941\">pyramidtriangulation.cc</a></li>\n-<li>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC : <a class=\"el\" href=\"a00239.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">virtualrefinement.cc</a></li>\n-<li>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC : <a class=\"el\" href=\"a00200.html#a944407dc4f6f9a372b10b69bbb5a0792\">simplex.cc</a></li>\n-<li>DUNE_INCLUDING_IMPLEMENTATION : <a class=\"el\" href=\"a00212.html#a0aeda817d7161b7c1afd8dd15ff12f17\">quadraturerules.hh</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_BASE_CC : <a class=\"el\" href=\"a00236.html#ab8232ef779e57c3676c54a73bd759f72\">base.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_HCUBE_CC : <a class=\"el\" href=\"a00242.html#a2be7a03e64dedaaa1cf5c7c8e2a9cf60\">hcube.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_HCUBETRIANGULATION_CC : <a class=\"el\" href=\"a00248.html#a3fe24de9b756cd18f014979a41cb0843\">hcubetriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_PRISMTRIANGULATION_CC : <a class=\"el\" href=\"a00245.html#ae56eb72b98f97f57cc224eb9b4394ef8\">prismtriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_REFINEMENT_PYRAMIDTRIANGULATION_CC : <a class=\"el\" href=\"a00239.html#a5f431ee98541c17b3d9aea2dbc726941\">pyramidtriangulation.cc</a></li>\n+<li>DUNE_GEOMETRY_VIRTUALREFINEMENT_CC : <a class=\"el\" href=\"a00230.html#ac82d420bff6cce87d06ad71b4f1cb0c8\">virtualrefinement.cc</a></li>\n+<li>DUNE_GRID_COMMON_REFINEMENT_SIMPLEX_CC : <a class=\"el\" href=\"a00233.html#a944407dc4f6f9a372b10b69bbb5a0792\">simplex.cc</a></li>\n+<li>DUNE_INCLUDING_IMPLEMENTATION : <a class=\"el\" href=\"a00188.html#a0aeda817d7161b7c1afd8dd15ff12f17\">quadraturerules.hh</a></li>\n </ul>\n </div><!-- contents -->\n <!-- start footer part -->\n <hr class=\"footer\"/><address class=\"footer\"><small>\n Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8\n </small></address>\n </body>\n"}, {"source1": "./usr/share/doc/libdune-geometry-doc/doxygen/a00041.html", "source2": "./usr/share/doc/libdune-geometry-doc/doxygen/a00080.html", "comments": ["Files identical despite different names"], "unified_diff": null}]}]}]}]}