From 5b46830a52a3c51feb9f8038f806b43c302175a6 Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Thu, 1 Jun 2017 21:15:33 +0200 Subject: [PATCH] Fix doxygen problem. Improve documentation. --- include/deal.II/grid/manifold_lib.h | 36 ++++++++++++++++++----------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/include/deal.II/grid/manifold_lib.h b/include/deal.II/grid/manifold_lib.h index f6ab6b1493..1d84896d12 100644 --- a/include/deal.II/grid/manifold_lib.h +++ b/include/deal.II/grid/manifold_lib.h @@ -519,7 +519,7 @@ private: * is given by * @f{align*}{ * \bf S(u,v) &= (1-v)\bf c_0(u)+v \bf c_1(u) + (1-u)\bf c_2(v) + u \bf c_3(v) \\ - * &\quad - \begin[(1-u)(1-v) \bf x_0 + u(1-v) \bf x_1 + (1-u)v \bf x_2 + uv \bf x_3 \right] + * &\quad - \left[(1-u)(1-v) \bf x_0 + u(1-v) \bf x_1 + (1-u)v \bf x_2 + uv \bf x_3 \right] * @f} * where $\bf x_0, \bf x_1, \bf x_2, \bf x_3$ denote the four bounding vertices * bounding the image space and $\bf c_0, \bf c_1, \bf c_2, \bf c_3$ are the @@ -533,7 +533,7 @@ private: * This manifold is usually attached to a coarse mesh and then places new * points as a combination of the descriptions on the boundaries, weighted * appropriately according to the position of the point on the original chart - * point $(u,v). Whenever possible, this manifold should be preferred over + * point $(u,v)$. Whenever possible, this manifold should be preferred over * setting only a curved manifold on the boundary of a mesh, since the latter * will need to switch from a curved description to a straight description in a * single layer of elements, which causes an error order on cells close to the @@ -581,8 +581,10 @@ private: * @image html circular_mesh_only_boundary_manifold.png *

* - * @note In the implementation of this class, the manifolds surrounding a - * coarse cell are queried repeatedly to compute points on their interior. For + *

Implementation details

+ * + * In the implementation of this class, the manifolds surrounding a coarse + * cell are queried repeatedly to compute points on their interior. For * optimal mesh quality, those manifolds should be compatible with a chart * notion. For example, computing a point that is 0.25 along the line between * two vertices using the weights 0.25 and 0.75 for the two vertices should @@ -592,21 +594,24 @@ private: * when using the latter. In case the quality of the manifold is not good * enough, upon mesh refinement it may happen that the transformation to a * chart inside the get_new_point() or add_new_point() methods produces points - * that are outside the unit cells, then this class throws an exception of type - * Manifold@::ExcTransformationFailed. If that happens, the mesh - * should be refined before applying this class, as done in the following - * example: + * that are outside the unit cells, then this class throws an exception of + * type Manifold@::ExcTransformationFailed. If that happens, + * the mesh should be refined before applying this class, as done in the + * following example: + * * @code * SphericalManifold spherical_manifold; * TransfiniteInterpolationManifold inner_manifold; * Triangulation triangulation; * GridGenerator::hyper_ball (triangulation); + * * triangulation.set_all_manifold_ids(1); * triangulation.set_all_manifold_ids_on_boundary(0); * triangulation.set_manifold (0, polar_manifold); * inner_manifold.initialize(triangulation); * triangulation.set_manifold (1, inner_manifold); * triangulation.refine_global(1); + * * // initialize the transfinite manifold again * inner_manifold.initialize(triangulation); * triangulation.refine_global(4); @@ -618,12 +623,15 @@ private: * given neighborhood, and the grid quality is typically higher when extending * the curved description over as large a domain as possible. Regarding * performance, the identification of the correct coarse cell in the - * get_new_point() method needs to pass all coarse cells, so expect a quadratic - * complexity in the number of coarse cells. Thus, the current implementation - * is only really economical when there are not more than a few hundred coarse - * cells. To make performance better for larger numbers of cells, one could - * extend the current implementation by a pre-identification of relevant cells - * with axis-aligned bounding boxes. + * get_new_point() method needs to pass all coarse cells, so expect a linear + * complexity in the number of coarse cells for each single mapping operation, + * i.e., at least quadratic in the number of coarse mesh cells. Thus, the + * current implementation is only economical when there are not more than a + * few hundreds of coarse cells. To make performance better for larger numbers + * of cells, one could extend the current implementation by a + * pre-identification of relevant cells with axis-aligned bounding boxes. + * + * @ingroup manifold * * @author Martin Kronbichler, Luca Heltai, 2017 */ -- 2.39.5