From c6269079be0c852190f1924a24063dd7016d9cf1 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 7 Apr 2014 18:04:21 +0000 Subject: [PATCH] Patch by Denis Davydov: Add an optional argument to GridTools::laplace_transform that indicates the local stiffness. git-svn-id: https://svn.dealii.org/trunk@32725 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/news/changes.h | 10 +- deal.II/include/deal.II/grid/grid_generator.h | 13 +- deal.II/include/deal.II/grid/grid_tools.h | 11 +- deal.II/source/grid/grid_generator.cc | 13 +- deal.II/source/grid/grid_generator.inst.in | 3 +- deal.II/source/grid/grid_tools.cc | 5 +- deal.II/source/grid/grid_tools.inst.in | 3 +- tests/deal.II/grid_transform.cc | 4 +- tests/deal.II/grid_transform_coefficient.cc | 123 ++++ .../deal.II/grid_transform_coefficient.output | 653 ++++++++++++++++++ 10 files changed, 825 insertions(+), 13 deletions(-) create mode 100644 tests/deal.II/grid_transform_coefficient.cc create mode 100644 tests/deal.II/grid_transform_coefficient.output diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index a49dcacfe2..bcc902bd80 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -1,4 +1,4 @@ - // --------------------------------------------------------------------- +// --------------------------------------------------------------------- // $Id$ // // Copyright (C) 2013, 2014 by the deal.II authors @@ -148,10 +148,16 @@ inconvenience this causes.

Specific improvements

    +
  1. New: GridTools::laplace_transform() now takes an addition, optional + parameter that indicates the "stiffness" of the mapping. +
    + (Denis Davydov, Jean-Paul Pelteret, 2014/04/07) +
  2. +
  3. Fixed: DoFTools::extract_constant_modes now correctly identifies both constant modes in the scalar element FE_Q_DG0, which has been realized by a few modifications in how the constant modes propagate from the element to - the extract_constant_modes function. + the extract_constant_modes() function.
    (Martin Kronbichler, 2014/04/04)
  4. diff --git a/deal.II/include/deal.II/grid/grid_generator.h b/deal.II/include/deal.II/grid/grid_generator.h index 15625f4677..efdd65a8ae 100644 --- a/deal.II/include/deal.II/grid/grid_generator.h +++ b/deal.II/include/deal.II/grid/grid_generator.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -692,11 +693,21 @@ namespace GridGenerator * * In 1d, this function is not currently implemented. * + * An optional @p coefficient for the Laplace problem an be used to control the amount of + * mesh deformation in different parts of the domain. + * Larger values make cells less prone to deformation (effectively increasing their stiffness). + * The coefficient is evaluated in the coordinate system of the old, + * undeformed configuration of the triangulation as input, i.e., before + * the transformation is applied. + * Should this function be provided, sensible results can only be expected if + * all coefficients are positive. + * * @deprecated This function has been moved to GridTools::laplace_transform */ template void laplace_transformation (Triangulation &tria, - const std::map > &new_points) DEAL_II_DEPRECATED; + const std::map > &new_points, + const Function *coefficient = 0) DEAL_II_DEPRECATED; /** * Exception diff --git a/deal.II/include/deal.II/grid/grid_tools.h b/deal.II/include/deal.II/grid/grid_tools.h index 1622a618f1..09377b3774 100644 --- a/deal.II/include/deal.II/grid/grid_tools.h +++ b/deal.II/include/deal.II/grid/grid_tools.h @@ -261,11 +261,20 @@ namespace GridTools * @param[in,out] tria The Triangulation object. This object is changed in-place, * i.e., the previous locations of vertices are overwritten. * + * @param[in] coefficient An optional coefficient for the Laplace problem. + * Larger values make cells less prone to deformation (effectively increasing their stiffness). + * The coefficient is evaluated in the coordinate system of the old, + * undeformed configuration of the triangulation as input, i.e., before + * the transformation is applied. + * Should this function be provided, sensible results can only be expected if + * all coefficients are positive. + * * @note This function is not currently implemented for the 1d case. */ template void laplace_transform (const std::map > &new_points, - Triangulation &tria); + Triangulation &tria, + const Function *coefficient = 0); /** * Scale the entire triangulation diff --git a/deal.II/source/grid/grid_generator.cc b/deal.II/source/grid/grid_generator.cc index d20a4acfab..479e84ac1b 100644 --- a/deal.II/source/grid/grid_generator.cc +++ b/deal.II/source/grid/grid_generator.cc @@ -3425,7 +3425,10 @@ namespace GridGenerator // and create the triangulation SubCellData subcell_data; std::vector considered_vertices; - GridTools::delete_duplicated_vertices (vertices, cells, subcell_data, considered_vertices); + GridTools::delete_duplicated_vertices (vertices, cells, + subcell_data, + considered_vertices); + result.clear (); result.create_triangulation (vertices, cells, subcell_data); } @@ -3554,7 +3557,8 @@ namespace GridGenerator // Implementation for 1D only template <> void laplace_transformation (Triangulation<1> &, - const std::map > &) + const std::map > &, + const Function<1> *) { Assert(false, ExcNotImplemented()); } @@ -3563,7 +3567,8 @@ namespace GridGenerator // Implementation for dimensions except 1 template void laplace_transformation (Triangulation &tria, - const std::map > &new_points) + const std::map > &new_points, + const Function *coefficient) { // first provide everything that is // needed for solving a Laplace @@ -3587,7 +3592,7 @@ namespace GridGenerator QGauss quadrature(4); - MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S); + MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S,coefficient); // set up the boundary values for // the laplace problem diff --git a/deal.II/source/grid/grid_generator.inst.in b/deal.II/source/grid/grid_generator.inst.in index 684d5a0d62..913a91ab07 100644 --- a/deal.II/source/grid/grid_generator.inst.in +++ b/deal.II/source/grid/grid_generator.inst.in @@ -92,7 +92,8 @@ namespace GridGenerator \{ #if deal_II_dimension > 1 template void laplace_transformation (Triangulation &, - const std::map > &); + const std::map > &, + const Function *); #endif \} diff --git a/deal.II/source/grid/grid_tools.cc b/deal.II/source/grid/grid_tools.cc index 84e781be1e..34888a24bb 100644 --- a/deal.II/source/grid/grid_tools.cc +++ b/deal.II/source/grid/grid_tools.cc @@ -623,11 +623,12 @@ namespace GridTools template void laplace_transform (const std::map > &new_points, - Triangulation &triangulation) + Triangulation &triangulation, + const Function *coefficient) { //TODO: Move implementation of this function into the current // namespace - GridGenerator::laplace_transformation(triangulation, new_points); + GridGenerator::laplace_transformation(triangulation, new_points, coefficient); } diff --git a/deal.II/source/grid/grid_tools.inst.in b/deal.II/source/grid/grid_tools.inst.in index a85fc66fb5..20e2102a5c 100644 --- a/deal.II/source/grid/grid_tools.inst.in +++ b/deal.II/source/grid/grid_tools.inst.in @@ -238,7 +238,8 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS template void laplace_transform (const std::map > &new_points, - Triangulation &triangulation); + Triangulation &triangulation, + const Function *coefficient); template Triangulation::DistortedCellList diff --git a/tests/deal.II/grid_transform.cc b/tests/deal.II/grid_transform.cc index b417626514..3c6dcb2f0e 100644 --- a/tests/deal.II/grid_transform.cc +++ b/tests/deal.II/grid_transform.cc @@ -1,7 +1,7 @@ // --------------------------------------------------------------------- // $Id$ // -// Copyright (C) 1998 - 2013 by the deal.II authors +// Copyright (C) 1998 - 2014 by the deal.II authors // // This file is part of the deal.II library. // @@ -15,6 +15,8 @@ // --------------------------------------------------------------------- +// test the deformation of a circular annulus to a domain where the central +// circle is displaced #include "../tests.h" diff --git a/tests/deal.II/grid_transform_coefficient.cc b/tests/deal.II/grid_transform_coefficient.cc new file mode 100644 index 0000000000..beee2dd480 --- /dev/null +++ b/tests/deal.II/grid_transform_coefficient.cc @@ -0,0 +1,123 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 1998 - 2014 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + +// like grid_transform, but use a spatially variable coefficient + + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +template +class Coefficient : public Function +{ +public: + virtual double value (const Point &p, + const unsigned int) const + { + return (p[0]>0 ? 10 : 1); + } +}; + + +int main () +{ + const unsigned int dim=2; + Point origin; + HyperShellBoundary boundary(origin); + MappingQ mapping(2); + Triangulation tria; + tria.set_boundary(0, boundary); + const double inner_radius=1.; + const double outer_radius=5.; + GridGenerator::hyper_shell(tria, origin, inner_radius, outer_radius, 8); + tria.refine_global(2); + + // build up a map of vertex indices + // of boundary vertices to the new + // boundary points + std::map > new_points; + + // new center and new radius + // of the inner circle. + const Point n_center(0,-1); + const double n_radius=0.5; + + Triangulation::cell_iterator cell=tria.begin_active(), + endc=tria.end(); + Triangulation::face_iterator face; + for (; cell!=endc; ++cell) + { + if (cell->at_boundary()) + for (unsigned int face_no=0; face_no::faces_per_cell; ++face_no) + { + face=cell->face(face_no); + if (face->at_boundary()) + for (unsigned int vertex_no=0; + vertex_no::vertices_per_face; ++vertex_no) + { + const Point &v=face->vertex(vertex_no); + if (std::fabs(std::sqrt(v.square())-outer_radius)<1e-12) + { + // leave the + // point, where + // they are. + new_points.insert(std::pair > ( + face->vertex_index(vertex_no), v)); + } + else if (std::fabs(std::sqrt(v.square())-inner_radius)<1e-12) + { + // move the + // center of + // the inner + // circle to + // (-1,0) and + // take half + // the radius + // of the + // circle. + new_points.insert(std::pair > ( + face->vertex_index(vertex_no), n_radius/inner_radius*v+n_center)); + face->set_boundary_indicator(1); + } + else + Assert(false, ExcInternalError()); + } + } + } + + const Coefficient c; + GridGenerator::laplace_transformation (tria, new_points, &c); + HyperBallBoundary inner_ball(n_center, n_radius); + tria.set_boundary(1, inner_ball); + + GridOut grid_out; + std::ofstream eps_stream2("output"); + grid_out.write_eps(tria, eps_stream2, &mapping); + + tria.clear(); + + return 0; +} diff --git a/tests/deal.II/grid_transform_coefficient.output b/tests/deal.II/grid_transform_coefficient.output new file mode 100644 index 0000000000..74f8f2d6b9 --- /dev/null +++ b/tests/deal.II/grid_transform_coefficient.output @@ -0,0 +1,653 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Title: deal.II Output +%%Creator: the deal.II library + +%%BoundingBox: 0 0 301 300 +/m {moveto} bind def +/x {lineto stroke} bind def +/b {0 0 0 setrgbcolor} def +/r {1 0 0 setrgbcolor} def +%%EndProlog + +0.5 setlinewidth +b 300 150 m 269.727 145.754 x +b 297.118 179.264 m 265.518 167.89 x +b 269.727 145.754 m 265.518 167.89 x +b 297.118 179.264 m 265.518 167.89 x +b 288.582 207.403 m 258.81 189.709 x +b 265.518 167.89 m 258.81 189.709 x +b 269.727 145.754 m 238.9 140.339 x +b 265.518 167.89 m 233.152 154.954 x +b 269.727 145.754 m 265.518 167.89 x +b 238.9 140.339 m 233.152 154.954 x +b 265.518 167.89 m 233.152 154.954 x +b 258.81 189.709 m 228.21 170.233 x +b 265.518 167.89 m 258.81 189.709 x +b 233.152 154.954 m 228.21 170.233 x +b 288.582 207.403 m 258.81 189.709 x +b 274.72 233.336 m 249.015 210.274 x +b 258.81 189.709 m 249.015 210.274 x +b 274.72 233.336 m 249.015 210.274 x +b 256.066 256.066 m 237.148 229.58 x +b 249.015 210.274 m 237.148 229.58 x +b 258.81 189.709 m 228.21 170.233 x +b 249.015 210.274 m 222.557 185.384 x +b 258.81 189.709 m 249.015 210.274 x +b 228.21 170.233 m 222.557 185.384 x +b 249.015 210.274 m 222.557 185.384 x +b 237.148 229.58 m 217.611 201.559 x +b 249.015 210.274 m 237.148 229.58 x +b 222.557 185.384 m 217.611 201.559 x +b 238.9 140.339 m 206.034 132.808 x +b 233.152 154.954 m 202.601 141.732 x +b 238.9 140.339 m 233.152 154.954 x +b 206.034 132.808 m 202.601 141.732 x +b 233.152 154.954 m 202.601 141.732 x +b 228.21 170.233 m 199.827 151.101 x +b 233.152 154.954 m 228.21 170.233 x +b 202.601 141.732 m 199.827 151.101 x +b 206.034 132.808 m 165 120 x +b 202.601 141.732 m 164.712 122.926 x +b 206.034 132.808 m 202.601 141.732 x +b 202.601 141.732 m 164.712 122.926 x +b 199.827 151.101 m 163.858 125.74 x +b 202.601 141.732 m 199.827 151.101 x +b 228.21 170.233 m 199.827 151.101 x +b 222.557 185.384 m 196.809 160.42 x +b 228.21 170.233 m 222.557 185.384 x +b 199.827 151.101 m 196.809 160.42 x +b 222.557 185.384 m 196.809 160.42 x +b 217.611 201.559 m 194.714 170.564 x +b 222.557 185.384 m 217.611 201.559 x +b 196.809 160.42 m 194.714 170.564 x +b 199.827 151.101 m 163.858 125.74 x +b 196.809 160.42 m 162.472 128.334 x +b 199.827 151.101 m 196.809 160.42 x +b 196.809 160.42 m 162.472 128.334 x +b 194.714 170.564 m 160.607 130.607 x +b 196.809 160.42 m 194.714 170.564 x +b 256.066 256.066 m 237.148 229.58 x +b 233.336 274.72 m 220.334 242.018 x +b 237.148 229.58 m 220.334 242.018 x +b 233.336 274.72 m 220.334 242.018 x +b 207.403 288.582 m 203.351 252.407 x +b 220.334 242.018 m 203.351 252.407 x +b 237.148 229.58 m 217.611 201.559 x +b 220.334 242.018 m 205.861 207.335 x +b 237.148 229.58 m 220.334 242.018 x +b 217.611 201.559 m 205.861 207.335 x +b 220.334 242.018 m 205.861 207.335 x +b 203.351 252.407 m 196.412 214.078 x +b 220.334 242.018 m 203.351 252.407 x +b 205.861 207.335 m 196.412 214.078 x +b 207.403 288.582 m 203.351 252.407 x +b 179.264 297.118 m 187.875 259.574 x +b 203.351 252.407 m 187.875 259.574 x +b 179.264 297.118 m 187.875 259.574 x +b 150 300 m 179.383 264.302 x +b 187.875 259.574 m 179.383 264.302 x +b 203.351 252.407 m 196.412 214.078 x +b 187.875 259.574 m 189.406 219.94 x +b 203.351 252.407 m 187.875 259.574 x +b 196.412 214.078 m 189.406 219.94 x +b 187.875 259.574 m 189.406 219.94 x +b 179.383 264.302 m 184.976 226.918 x +b 187.875 259.574 m 179.383 264.302 x +b 189.406 219.94 m 184.976 226.918 x +b 217.611 201.559 m 194.714 170.564 x +b 205.861 207.335 m 187.95 174.155 x +b 217.611 201.559 m 205.861 207.335 x +b 194.714 170.564 m 187.95 174.155 x +b 205.861 207.335 m 187.95 174.155 x +b 196.412 214.078 m 182.997 178.312 x +b 205.861 207.335 m 196.412 214.078 x +b 187.95 174.155 m 182.997 178.312 x +b 194.714 170.564 m 160.607 130.607 x +b 187.95 174.155 m 158.334 132.472 x +b 194.714 170.564 m 187.95 174.155 x +b 187.95 174.155 m 158.334 132.472 x +b 182.997 178.312 m 155.74 133.858 x +b 187.95 174.155 m 182.997 178.312 x +b 196.412 214.078 m 182.997 178.312 x +b 189.406 219.94 m 179.604 181.896 x +b 196.412 214.078 m 189.406 219.94 x +b 182.997 178.312 m 179.604 181.896 x +b 189.406 219.94 m 179.604 181.896 x +b 184.976 226.918 m 179.159 186.203 x +b 189.406 219.94 m 184.976 226.918 x +b 179.604 181.896 m 179.159 186.203 x +b 182.997 178.312 m 155.74 133.858 x +b 179.604 181.896 m 152.926 134.712 x +b 182.997 178.312 m 179.604 181.896 x +b 179.604 181.896 m 152.926 134.712 x +b 179.159 186.203 m 150 135 x +b 179.604 181.896 m 179.159 186.203 x +b 150 300 m 179.383 264.302 x +b 120.736 297.118 m 142.981 259.574 x +b 179.383 264.302 m 142.981 259.574 x +b 120.736 297.118 m 142.981 259.574 x +b 92.5975 288.582 m 114.682 252.407 x +b 142.981 259.574 m 114.682 252.407 x +b 179.383 264.302 m 184.976 226.918 x +b 142.981 259.574 m 158.361 219.94 x +b 179.383 264.302 m 142.981 259.574 x +b 184.976 226.918 m 158.361 219.94 x +b 142.981 259.574 m 158.361 219.94 x +b 114.682 252.407 m 134.405 214.078 x +b 142.981 259.574 m 114.682 252.407 x +b 158.361 219.94 m 134.405 214.078 x +b 92.5975 288.582 m 114.682 252.407 x +b 66.6645 274.72 m 90.6726 242.018 x +b 114.682 252.407 m 90.6726 242.018 x +b 66.6645 274.72 m 90.6726 242.018 x +b 43.934 256.066 m 69.4963 229.58 x +b 90.6726 242.018 m 69.4963 229.58 x +b 114.682 252.407 m 134.405 214.078 x +b 90.6726 242.018 m 113.957 207.335 x +b 114.682 252.407 m 90.6726 242.018 x +b 134.405 214.078 m 113.957 207.335 x +b 90.6726 242.018 m 113.957 207.335 x +b 69.4963 229.58 m 95.1697 201.559 x +b 90.6726 242.018 m 69.4963 229.58 x +b 113.957 207.335 m 95.1697 201.559 x +b 184.976 226.918 m 179.159 186.203 x +b 158.361 219.94 m 160.18 181.896 x +b 184.976 226.918 m 158.361 219.94 x +b 179.159 186.203 m 160.18 181.896 x +b 158.361 219.94 m 160.18 181.896 x +b 134.405 214.078 m 144.515 178.312 x +b 158.361 219.94 m 134.405 214.078 x +b 160.18 181.896 m 144.515 178.312 x +b 179.159 186.203 m 150 135 x +b 160.18 181.896 m 147.074 134.712 x +b 179.159 186.203 m 160.18 181.896 x +b 160.18 181.896 m 147.074 134.712 x +b 144.515 178.312 m 144.26 133.858 x +b 160.18 181.896 m 144.515 178.312 x +b 134.405 214.078 m 144.515 178.312 x +b 113.957 207.335 m 131.15 174.155 x +b 134.405 214.078 m 113.957 207.335 x +b 144.515 178.312 m 131.15 174.155 x +b 113.957 207.335 m 131.15 174.155 x +b 95.1697 201.559 m 119.202 170.564 x +b 113.957 207.335 m 95.1697 201.559 x +b 131.15 174.155 m 119.202 170.564 x +b 144.515 178.312 m 144.26 133.858 x +b 131.15 174.155 m 141.666 132.472 x +b 144.515 178.312 m 131.15 174.155 x +b 131.15 174.155 m 141.666 132.472 x +b 119.202 170.564 m 139.393 130.607 x +b 131.15 174.155 m 119.202 170.564 x +b 43.934 256.066 m 69.4963 229.58 x +b 25.2796 233.336 m 55.8639 210.274 x +b 69.4963 229.58 m 55.8639 210.274 x +b 25.2796 233.336 m 55.8639 210.274 x +b 11.4181 207.403 m 44.7446 189.709 x +b 55.8639 210.274 m 44.7446 189.709 x +b 69.4963 229.58 m 95.1697 201.559 x +b 55.8639 210.274 m 86.7509 185.384 x +b 69.4963 229.58 m 55.8639 210.274 x +b 95.1697 201.559 m 86.7509 185.384 x +b 55.8639 210.274 m 86.7509 185.384 x +b 44.7446 189.709 m 78.5133 170.233 x +b 55.8639 210.274 m 44.7446 189.709 x +b 86.7509 185.384 m 78.5133 170.233 x +b 11.4181 207.403 m 44.7446 189.709 x +b 2.88221 179.264 m 37.2546 167.89 x +b 44.7446 189.709 m 37.2546 167.89 x +b 2.88221 179.264 m 37.2546 167.89 x +b 0 150 m 32.6325 145.754 x +b 37.2546 167.89 m 32.6325 145.754 x +b 44.7446 189.709 m 78.5133 170.233 x +b 37.2546 167.89 m 72.1371 154.954 x +b 44.7446 189.709 m 37.2546 167.89 x +b 78.5133 170.233 m 72.1371 154.954 x +b 37.2546 167.89 m 72.1371 154.954 x +b 32.6325 145.754 m 65.7419 140.339 x +b 37.2546 167.89 m 32.6325 145.754 x +b 72.1371 154.954 m 65.7419 140.339 x +b 95.1697 201.559 m 119.202 170.564 x +b 86.7509 185.384 m 112.538 160.42 x +b 95.1697 201.559 m 86.7509 185.384 x +b 119.202 170.564 m 112.538 160.42 x +b 86.7509 185.384 m 112.538 160.42 x +b 78.5133 170.233 m 106.923 151.101 x +b 86.7509 185.384 m 78.5133 170.233 x +b 112.538 160.42 m 106.923 151.101 x +b 119.202 170.564 m 139.393 130.607 x +b 112.538 160.42 m 137.528 128.334 x +b 119.202 170.564 m 112.538 160.42 x +b 112.538 160.42 m 137.528 128.334 x +b 106.923 151.101 m 136.142 125.74 x +b 112.538 160.42 m 106.923 151.101 x +b 78.5133 170.233 m 106.923 151.101 x +b 72.1371 154.954 m 102.848 141.732 x +b 78.5133 170.233 m 72.1371 154.954 x +b 106.923 151.101 m 102.848 141.732 x +b 72.1371 154.954 m 102.848 141.732 x +b 65.7419 140.339 m 99.2433 132.808 x +b 72.1371 154.954 m 65.7419 140.339 x +b 102.848 141.732 m 99.2433 132.808 x +b 106.923 151.101 m 136.142 125.74 x +b 102.848 141.732 m 135.288 122.926 x +b 106.923 151.101 m 102.848 141.732 x +b 102.848 141.732 m 135.288 122.926 x +b 99.2433 132.808 m 135 120 x +b 102.848 141.732 m 99.2433 132.808 x +b 0 150 m 32.6325 145.754 x +b 2.88221 120.736 m 37.2546 122.996 x +b 32.6325 145.754 m 37.2546 122.996 x +b 2.88221 120.736 m 37.2546 122.996 x +b 11.4181 92.5975 m 44.7446 101.04 x +b 37.2546 122.996 m 44.7446 101.04 x +b 32.6325 145.754 m 65.7419 140.339 x +b 37.2546 122.996 m 72.1371 123.91 x +b 32.6325 145.754 m 37.2546 122.996 x +b 65.7419 140.339 m 72.1371 123.91 x +b 37.2546 122.996 m 72.1371 123.91 x +b 44.7446 101.04 m 78.5133 108.227 x +b 37.2546 122.996 m 44.7446 101.04 x +b 72.1371 123.91 m 78.5133 108.227 x +b 11.4181 92.5975 m 44.7446 101.04 x +b 25.2796 66.6645 m 55.8639 80.6122 x +b 44.7446 101.04 m 55.8639 80.6122 x +b 25.2796 66.6645 m 55.8639 80.6122 x +b 43.934 43.934 m 69.4963 61.9287 x +b 55.8639 80.6122 m 69.4963 61.9287 x +b 44.7446 101.04 m 78.5133 108.227 x +b 55.8639 80.6122 m 86.7509 93.4804 x +b 44.7446 101.04 m 55.8639 80.6122 x +b 78.5133 108.227 m 86.7509 93.4804 x +b 55.8639 80.6122 m 86.7509 93.4804 x +b 69.4963 61.9287 m 95.1697 79.1183 x +b 55.8639 80.6122 m 69.4963 61.9287 x +b 86.7509 93.4804 m 95.1697 79.1183 x +b 65.7419 140.339 m 99.2433 132.808 x +b 72.1371 123.91 m 102.848 122.308 x +b 65.7419 140.339 m 72.1371 123.91 x +b 99.2433 132.808 m 102.848 122.308 x +b 72.1371 123.91 m 102.848 122.308 x +b 78.5133 108.227 m 106.923 112.619 x +b 72.1371 123.91 m 78.5133 108.227 x +b 102.848 122.308 m 106.923 112.619 x +b 99.2433 132.808 m 135 120 x +b 102.848 122.308 m 135.288 117.074 x +b 99.2433 132.808 m 102.848 122.308 x +b 102.848 122.308 m 135.288 117.074 x +b 106.923 112.619 m 136.142 114.26 x +b 102.848 122.308 m 106.923 112.619 x +b 78.5133 108.227 m 106.923 112.619 x +b 86.7509 93.4804 m 112.538 103.619 x +b 78.5133 108.227 m 86.7509 93.4804 x +b 106.923 112.619 m 112.538 103.619 x +b 86.7509 93.4804 m 112.538 103.619 x +b 95.1697 79.1183 m 119.202 95.052 x +b 86.7509 93.4804 m 95.1697 79.1183 x +b 112.538 103.619 m 119.202 95.052 x +b 106.923 112.619 m 136.142 114.26 x +b 112.538 103.619 m 137.528 111.666 x +b 106.923 112.619 m 112.538 103.619 x +b 112.538 103.619 m 137.528 111.666 x +b 119.202 95.052 m 139.393 109.393 x +b 112.538 103.619 m 119.202 95.052 x +b 43.934 43.934 m 69.4963 61.9287 x +b 66.6645 25.2796 m 90.6726 48.8674 x +b 69.4963 61.9287 m 90.6726 48.8674 x +b 66.6645 25.2796 m 90.6726 48.8674 x +b 92.5975 11.4181 m 114.682 38.3417 x +b 90.6726 48.8674 m 114.682 38.3417 x +b 69.4963 61.9287 m 95.1697 79.1183 x +b 90.6726 48.8674 m 113.957 71.5288 x +b 69.4963 61.9287 m 90.6726 48.8674 x +b 95.1697 79.1183 m 113.957 71.5288 x +b 90.6726 48.8674 m 113.957 71.5288 x +b 114.682 38.3417 m 134.405 64.3816 x +b 90.6726 48.8674 m 114.682 38.3417 x +b 113.957 71.5288 m 134.405 64.3816 x +b 92.5975 11.4181 m 114.682 38.3417 x +b 120.736 2.88221 m 142.981 31.3115 x +b 114.682 38.3417 m 142.981 31.3115 x +b 120.736 2.88221 m 142.981 31.3115 x +b 150 0 m 179.383 27.207 x +b 142.981 31.3115 m 179.383 27.207 x +b 114.682 38.3417 m 134.405 64.3816 x +b 142.981 31.3115 m 158.361 58.9245 x +b 114.682 38.3417 m 142.981 31.3115 x +b 134.405 64.3816 m 158.361 58.9245 x +b 142.981 31.3115 m 158.361 58.9245 x +b 179.383 27.207 m 184.976 53.7599 x +b 142.981 31.3115 m 179.383 27.207 x +b 158.361 58.9245 m 184.976 53.7599 x +b 95.1697 79.1183 m 119.202 95.052 x +b 113.957 71.5288 m 131.15 89.8844 x +b 95.1697 79.1183 m 113.957 71.5288 x +b 119.202 95.052 m 131.15 89.8844 x +b 113.957 71.5288 m 131.15 89.8844 x +b 134.405 64.3816 m 144.515 85.4079 x +b 113.957 71.5288 m 134.405 64.3816 x +b 131.15 89.8844 m 144.515 85.4079 x +b 119.202 95.052 m 139.393 109.393 x +b 131.15 89.8844 m 141.666 107.528 x +b 119.202 95.052 m 131.15 89.8844 x +b 131.15 89.8844 m 141.666 107.528 x +b 144.515 85.4079 m 144.26 106.142 x +b 131.15 89.8844 m 144.515 85.4079 x +b 134.405 64.3816 m 144.515 85.4079 x +b 158.361 58.9245 m 160.18 82.1435 x +b 134.405 64.3816 m 158.361 58.9245 x +b 144.515 85.4079 m 160.18 82.1435 x +b 158.361 58.9245 m 160.18 82.1435 x +b 184.976 53.7599 m 179.159 79.4129 x +b 158.361 58.9245 m 184.976 53.7599 x +b 160.18 82.1435 m 179.159 79.4129 x +b 144.515 85.4079 m 144.26 106.142 x +b 160.18 82.1435 m 147.074 105.288 x +b 144.515 85.4079 m 160.18 82.1435 x +b 160.18 82.1435 m 147.074 105.288 x +b 179.159 79.4129 m 150 105 x +b 160.18 82.1435 m 179.159 79.4129 x +b 150 0 m 179.383 27.207 x +b 179.264 2.88221 m 187.875 31.3115 x +b 179.383 27.207 m 187.875 31.3115 x +b 179.264 2.88221 m 187.875 31.3115 x +b 207.403 11.4181 m 203.351 38.3417 x +b 187.875 31.3115 m 203.351 38.3417 x +b 179.383 27.207 m 184.976 53.7599 x +b 187.875 31.3115 m 189.406 58.9245 x +b 179.383 27.207 m 187.875 31.3115 x +b 184.976 53.7599 m 189.406 58.9245 x +b 187.875 31.3115 m 189.406 58.9245 x +b 203.351 38.3417 m 196.412 64.3816 x +b 187.875 31.3115 m 203.351 38.3417 x +b 189.406 58.9245 m 196.412 64.3816 x +b 207.403 11.4181 m 203.351 38.3417 x +b 233.336 25.2796 m 220.334 48.8674 x +b 203.351 38.3417 m 220.334 48.8674 x +b 233.336 25.2796 m 220.334 48.8674 x +b 256.066 43.934 m 237.148 61.9287 x +b 220.334 48.8674 m 237.148 61.9287 x +b 203.351 38.3417 m 196.412 64.3816 x +b 220.334 48.8674 m 205.861 71.5288 x +b 203.351 38.3417 m 220.334 48.8674 x +b 196.412 64.3816 m 205.861 71.5288 x +b 220.334 48.8674 m 205.861 71.5288 x +b 237.148 61.9287 m 217.611 79.1183 x +b 220.334 48.8674 m 237.148 61.9287 x +b 205.861 71.5288 m 217.611 79.1183 x +b 184.976 53.7599 m 179.159 79.4129 x +b 189.406 58.9245 m 179.604 82.1435 x +b 184.976 53.7599 m 189.406 58.9245 x +b 179.159 79.4129 m 179.604 82.1435 x +b 189.406 58.9245 m 179.604 82.1435 x +b 196.412 64.3816 m 182.997 85.4079 x +b 189.406 58.9245 m 196.412 64.3816 x +b 179.604 82.1435 m 182.997 85.4079 x +b 179.159 79.4129 m 150 105 x +b 179.604 82.1435 m 152.926 105.288 x +b 179.159 79.4129 m 179.604 82.1435 x +b 179.604 82.1435 m 152.926 105.288 x +b 182.997 85.4079 m 155.74 106.142 x +b 179.604 82.1435 m 182.997 85.4079 x +b 196.412 64.3816 m 182.997 85.4079 x +b 205.861 71.5288 m 187.95 89.8844 x +b 196.412 64.3816 m 205.861 71.5288 x +b 182.997 85.4079 m 187.95 89.8844 x +b 205.861 71.5288 m 187.95 89.8844 x +b 217.611 79.1183 m 194.714 95.052 x +b 205.861 71.5288 m 217.611 79.1183 x +b 187.95 89.8844 m 194.714 95.052 x +b 182.997 85.4079 m 155.74 106.142 x +b 187.95 89.8844 m 158.334 107.528 x +b 182.997 85.4079 m 187.95 89.8844 x +b 187.95 89.8844 m 158.334 107.528 x +b 194.714 95.052 m 160.607 109.393 x +b 187.95 89.8844 m 194.714 95.052 x +b 256.066 43.934 m 237.148 61.9287 x +b 274.72 66.6645 m 249.015 80.6122 x +b 237.148 61.9287 m 249.015 80.6122 x +b 274.72 66.6645 m 249.015 80.6122 x +b 288.582 92.5975 m 258.81 101.04 x +b 249.015 80.6122 m 258.81 101.04 x +b 237.148 61.9287 m 217.611 79.1183 x +b 249.015 80.6122 m 222.557 93.4804 x +b 237.148 61.9287 m 249.015 80.6122 x +b 217.611 79.1183 m 222.557 93.4804 x +b 249.015 80.6122 m 222.557 93.4804 x +b 258.81 101.04 m 228.21 108.227 x +b 249.015 80.6122 m 258.81 101.04 x +b 222.557 93.4804 m 228.21 108.227 x +b 288.582 92.5975 m 258.81 101.04 x +b 297.118 120.736 m 265.518 122.996 x +b 258.81 101.04 m 265.518 122.996 x +b 297.118 120.736 m 265.518 122.996 x +b 300 150 m 269.727 145.754 x +b 265.518 122.996 m 269.727 145.754 x +b 258.81 101.04 m 228.21 108.227 x +b 265.518 122.996 m 233.152 123.91 x +b 258.81 101.04 m 265.518 122.996 x +b 228.21 108.227 m 233.152 123.91 x +b 265.518 122.996 m 233.152 123.91 x +b 269.727 145.754 m 238.9 140.339 x +b 265.518 122.996 m 269.727 145.754 x +b 233.152 123.91 m 238.9 140.339 x +b 217.611 79.1183 m 194.714 95.052 x +b 222.557 93.4804 m 196.809 103.619 x +b 217.611 79.1183 m 222.557 93.4804 x +b 194.714 95.052 m 196.809 103.619 x +b 222.557 93.4804 m 196.809 103.619 x +b 228.21 108.227 m 199.827 112.619 x +b 222.557 93.4804 m 228.21 108.227 x +b 196.809 103.619 m 199.827 112.619 x +b 194.714 95.052 m 160.607 109.393 x +b 196.809 103.619 m 162.472 111.666 x +b 194.714 95.052 m 196.809 103.619 x +b 196.809 103.619 m 162.472 111.666 x +b 199.827 112.619 m 163.858 114.26 x +b 196.809 103.619 m 199.827 112.619 x +b 228.21 108.227 m 199.827 112.619 x +b 233.152 123.91 m 202.601 122.308 x +b 228.21 108.227 m 233.152 123.91 x +b 199.827 112.619 m 202.601 122.308 x +b 233.152 123.91 m 202.601 122.308 x +b 238.9 140.339 m 206.034 132.808 x +b 233.152 123.91 m 238.9 140.339 x +b 202.601 122.308 m 206.034 132.808 x +b 199.827 112.619 m 163.858 114.26 x +b 202.601 122.308 m 164.712 117.074 x +b 199.827 112.619 m 202.601 122.308 x +b 202.601 122.308 m 164.712 117.074 x +b 206.034 132.808 m 165 120 x +b 202.601 122.308 m 206.034 132.808 x +b 300 150 m 299.678 159.817 x +b 299.678 159.817 m 298.717 169.572 x +b 298.717 169.572 m 297.118 179.264 x +b 297.118 179.264 m 294.887 188.83 x +b 294.887 188.83 m 292.042 198.209 x +b 292.042 198.209 m 288.582 207.403 x +b 288.582 207.403 m 284.528 216.35 x +b 284.528 216.35 m 279.907 224.994 x +b 279.907 224.994 m 274.72 233.336 x +b 274.72 233.336 m 268.999 241.32 x +b 268.999 241.32 m 262.78 248.896 x +b 262.78 248.896 m 256.066 256.066 x +b 165 120 m 164.968 120.982 x +b 164.968 120.982 m 164.872 121.957 x +b 164.872 121.957 m 164.712 122.926 x +b 164.712 122.926 m 164.489 123.883 x +b 164.489 123.883 m 164.204 124.821 x +b 164.204 124.821 m 163.858 125.74 x +b 163.858 125.74 m 163.453 126.635 x +b 163.453 126.635 m 162.991 127.499 x +b 162.991 127.499 m 162.472 128.334 x +b 162.472 128.334 m 161.9 129.132 x +b 161.9 129.132 m 161.278 129.89 x +b 161.278 129.89 m 160.607 130.607 x +b 256.066 256.066 m 248.896 262.78 x +b 248.896 262.78 m 241.32 268.999 x +b 241.32 268.999 m 233.336 274.72 x +b 233.336 274.72 m 224.994 279.907 x +b 224.994 279.907 m 216.35 284.528 x +b 216.35 284.528 m 207.403 288.582 x +b 207.403 288.582 m 198.209 292.042 x +b 198.209 292.042 m 188.83 294.887 x +b 188.83 294.887 m 179.264 297.118 x +b 179.264 297.118 m 169.572 298.717 x +b 169.572 298.717 m 159.817 299.678 x +b 159.817 299.678 m 150 300 x +b 160.607 130.607 m 159.89 131.278 x +b 159.89 131.278 m 159.132 131.9 x +b 159.132 131.9 m 158.334 132.472 x +b 158.334 132.472 m 157.499 132.991 x +b 157.499 132.991 m 156.635 133.453 x +b 156.635 133.453 m 155.74 133.858 x +b 155.74 133.858 m 154.821 134.204 x +b 154.821 134.204 m 153.883 134.489 x +b 153.883 134.489 m 152.926 134.712 x +b 152.926 134.712 m 151.957 134.872 x +b 151.957 134.872 m 150.982 134.968 x +b 150.982 134.968 m 150 135 x +b 150 300 m 140.183 299.678 x +b 140.183 299.678 m 130.428 298.717 x +b 130.428 298.717 m 120.736 297.118 x +b 120.736 297.118 m 111.17 294.887 x +b 111.17 294.887 m 101.791 292.042 x +b 101.791 292.042 m 92.5975 288.582 x +b 92.5975 288.582 m 83.6505 284.528 x +b 83.6505 284.528 m 75.0062 279.907 x +b 75.0062 279.907 m 66.6645 274.72 x +b 66.6645 274.72 m 58.6803 268.999 x +b 58.6803 268.999 m 51.1035 262.78 x +b 51.1035 262.78 m 43.934 256.066 x +b 150 135 m 149.018 134.968 x +b 149.018 134.968 m 148.043 134.872 x +b 148.043 134.872 m 147.074 134.712 x +b 147.074 134.712 m 146.117 134.489 x +b 146.117 134.489 m 145.179 134.204 x +b 145.179 134.204 m 144.26 133.858 x +b 144.26 133.858 m 143.365 133.453 x +b 143.365 133.453 m 142.501 132.991 x +b 142.501 132.991 m 141.666 132.472 x +b 141.666 132.472 m 140.868 131.9 x +b 140.868 131.9 m 140.11 131.278 x +b 140.11 131.278 m 139.393 130.607 x +b 43.934 256.066 m 37.2195 248.896 x +b 37.2195 248.896 m 31.0014 241.32 x +b 31.0014 241.32 m 25.2796 233.336 x +b 25.2796 233.336 m 20.0928 224.994 x +b 20.0928 224.994 m 15.4723 216.35 x +b 15.4723 216.35 m 11.4181 207.403 x +b 11.4181 207.403 m 7.95839 198.209 x +b 7.95839 198.209 m 5.1131 188.83 x +b 5.1131 188.83 m 2.88221 179.264 x +b 2.88221 179.264 m 1.28253 169.572 x +b 1.28253 169.572 m 0.321791 159.817 x +b 0.321791 159.817 m 0 150 x +b 139.393 130.607 m 138.722 129.89 x +b 138.722 129.89 m 138.1 129.132 x +b 138.1 129.132 m 137.528 128.334 x +b 137.528 128.334 m 137.009 127.499 x +b 137.009 127.499 m 136.547 126.635 x +b 136.547 126.635 m 136.142 125.74 x +b 136.142 125.74 m 135.796 124.821 x +b 135.796 124.821 m 135.511 123.883 x +b 135.511 123.883 m 135.288 122.926 x +b 135.288 122.926 m 135.128 121.957 x +b 135.128 121.957 m 135.032 120.982 x +b 135.032 120.982 m 135 120 x +b 0 150 m 0.321791 140.183 x +b 0.321791 140.183 m 1.28253 130.428 x +b 1.28253 130.428 m 2.88221 120.736 x +b 2.88221 120.736 m 5.1131 111.17 x +b 5.1131 111.17 m 7.95839 101.791 x +b 7.95839 101.791 m 11.4181 92.5975 x +b 11.4181 92.5975 m 15.4723 83.6505 x +b 15.4723 83.6505 m 20.0928 75.0062 x +b 20.0928 75.0062 m 25.2796 66.6645 x +b 25.2796 66.6645 m 31.0014 58.6803 x +b 31.0014 58.6803 m 37.2195 51.1035 x +b 37.2195 51.1035 m 43.934 43.934 x +b 135 120 m 135.032 119.018 x +b 135.032 119.018 m 135.128 118.043 x +b 135.128 118.043 m 135.288 117.074 x +b 135.288 117.074 m 135.511 116.117 x +b 135.511 116.117 m 135.796 115.179 x +b 135.796 115.179 m 136.142 114.26 x +b 136.142 114.26 m 136.547 113.365 x +b 136.547 113.365 m 137.009 112.501 x +b 137.009 112.501 m 137.528 111.666 x +b 137.528 111.666 m 138.1 110.868 x +b 138.1 110.868 m 138.722 110.11 x +b 138.722 110.11 m 139.393 109.393 x +b 43.934 43.934 m 51.1035 37.2195 x +b 51.1035 37.2195 m 58.6803 31.0014 x +b 58.6803 31.0014 m 66.6645 25.2796 x +b 66.6645 25.2796 m 75.0062 20.0928 x +b 75.0062 20.0928 m 83.6505 15.4723 x +b 83.6505 15.4723 m 92.5975 11.4181 x +b 92.5975 11.4181 m 101.791 7.95839 x +b 101.791 7.95839 m 111.17 5.1131 x +b 111.17 5.1131 m 120.736 2.88221 x +b 120.736 2.88221 m 130.428 1.28253 x +b 130.428 1.28253 m 140.183 0.321791 x +b 140.183 0.321791 m 150 0 x +b 139.393 109.393 m 140.11 108.722 x +b 140.11 108.722 m 140.868 108.1 x +b 140.868 108.1 m 141.666 107.528 x +b 141.666 107.528 m 142.501 107.009 x +b 142.501 107.009 m 143.365 106.547 x +b 143.365 106.547 m 144.26 106.142 x +b 144.26 106.142 m 145.179 105.796 x +b 145.179 105.796 m 146.117 105.511 x +b 146.117 105.511 m 147.074 105.288 x +b 147.074 105.288 m 148.043 105.128 x +b 148.043 105.128 m 149.018 105.032 x +b 149.018 105.032 m 150 105 x +b 150 0 m 159.817 0.321791 x +b 159.817 0.321791 m 169.572 1.28253 x +b 169.572 1.28253 m 179.264 2.88221 x +b 179.264 2.88221 m 188.83 5.1131 x +b 188.83 5.1131 m 198.209 7.95839 x +b 198.209 7.95839 m 207.403 11.4181 x +b 207.403 11.4181 m 216.35 15.4723 x +b 216.35 15.4723 m 224.994 20.0928 x +b 224.994 20.0928 m 233.336 25.2796 x +b 233.336 25.2796 m 241.32 31.0014 x +b 241.32 31.0014 m 248.896 37.2195 x +b 248.896 37.2195 m 256.066 43.934 x +b 150 105 m 150.982 105.032 x +b 150.982 105.032 m 151.957 105.128 x +b 151.957 105.128 m 152.926 105.288 x +b 152.926 105.288 m 153.883 105.511 x +b 153.883 105.511 m 154.821 105.796 x +b 154.821 105.796 m 155.74 106.142 x +b 155.74 106.142 m 156.635 106.547 x +b 156.635 106.547 m 157.499 107.009 x +b 157.499 107.009 m 158.334 107.528 x +b 158.334 107.528 m 159.132 108.1 x +b 159.132 108.1 m 159.89 108.722 x +b 159.89 108.722 m 160.607 109.393 x +b 256.066 43.934 m 262.78 51.1035 x +b 262.78 51.1035 m 268.999 58.6803 x +b 268.999 58.6803 m 274.72 66.6645 x +b 274.72 66.6645 m 279.907 75.0062 x +b 279.907 75.0062 m 284.528 83.6505 x +b 284.528 83.6505 m 288.582 92.5975 x +b 288.582 92.5975 m 292.042 101.791 x +b 292.042 101.791 m 294.887 111.17 x +b 294.887 111.17 m 297.118 120.736 x +b 297.118 120.736 m 298.717 130.428 x +b 298.717 130.428 m 299.678 140.183 x +b 299.678 140.183 m 300 150 x +b 160.607 109.393 m 161.278 110.11 x +b 161.278 110.11 m 161.9 110.868 x +b 161.9 110.868 m 162.472 111.666 x +b 162.472 111.666 m 162.991 112.501 x +b 162.991 112.501 m 163.453 113.365 x +b 163.453 113.365 m 163.858 114.26 x +b 163.858 114.26 m 164.204 115.179 x +b 164.204 115.179 m 164.489 116.117 x +b 164.489 116.117 m 164.712 117.074 x +b 164.712 117.074 m 164.872 118.043 x +b 164.872 118.043 m 164.968 119.018 x +b 164.968 119.018 m 165 120 x +showpage -- 2.39.5