84 using GridView =
typename std::decay<
decltype(glue.template gridView<side>()) >::type;
85 using Mapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, AreaWriterImplementation::FacetLayout>;
86 using ctype =
typename GridView::ctype;
88 const GridView gv = glue.template gridView<side>();
90 std::vector<ctype> coveredArea(mapper.size(), ctype(0));
91 std::vector<ctype> totalArea(mapper.size(), ctype(1));
94 const auto element = in.inside();
95 const auto index = mapper.subIndex(element, in.indexInInside(), 1);
96 coveredArea[index] += in.geometryInInside().volume();
98 const auto& refElement = Dune::ReferenceElements<ctype, GridView::dimension>::general(element.type());
99 const auto& subGeometry = refElement.template geometry<1>(in.indexInInside());
100 totalArea[index] = subGeometry.volume();
103 for (std::size_t i = 0; i < coveredArea.size(); ++i)
104 coveredArea[i] /= totalArea[i];
106 out <<
"# vtk DataFile Version 2.0\n"
107 <<
"Filename: Glue Area\n"
112 out <<
"CELL_DATA " << coveredArea.size() <<
"\n"
113 <<
"SCALARS CoveredArea double 1\n"
114 <<
"LOOKUP_TABLE default\n";
115 for (
const auto& value : coveredArea)
116 out << value <<
"\n";