86 using GridView =
typename std::decay<
decltype(glue.template gridView<side>()) >::type;
87 using Mapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, AreaWriterImplementation::FacetLayout>;
88 using ctype =
typename GridView::ctype;
90 const GridView gv = glue.template gridView<side>();
92 std::vector<ctype> coveredArea(mapper.size(), ctype(0));
93 std::vector<ctype> totalArea(mapper.size(), ctype(1));
96 const auto element = in.inside();
97 const auto index = mapper.subIndex(element, in.indexInInside(), 1);
98 coveredArea[index] += in.geometryInInside().volume();
100 const auto& refElement = Dune::ReferenceElements<ctype, GridView::dimension>::general(element.type());
101 const auto& subGeometry = refElement.template geometry<1>(in.indexInInside());
102 totalArea[index] = subGeometry.volume();
105 for (std::size_t i = 0; i < coveredArea.size(); ++i)
106 coveredArea[i] /= totalArea[i];
108 out <<
"# vtk DataFile Version 2.0\n"
109 <<
"Filename: Glue Area\n"
114 out <<
"CELL_DATA " << coveredArea.size() <<
"\n"
115 <<
"SCALARS CoveredArea double 1\n"
116 <<
"LOOKUP_TABLE default\n";
117 for (
const auto& value : coveredArea)
118 out << value <<
"\n";