Hi all, And I apologize in advance for posting a question that might break several of the "how to post a question" rules.
*The Issue* I'm trying to use a .STEP file to load a 3D geometry that is a bit more complex - it has holes, for instance. I would like meshes to get closer to the original geometry, upon refinement. To this end, I tried a number of approaches (listed below), and eventually settled on using my own custom-made manifolds (more details below). Starting with a somewhat coarse grid, each of the original cells has its own manifold, and refinement produces points using transfinite interpolation. The problem is that the ChartManifold::pull_back is called with points that seem very far away from the manifold itself. I expected that if vertices v0, v1, v2, v3 were the corners of a quadrangle representing a face, pull_back would be called with a point that is not too far from the said quadrangle. Instead, I get this (which seems to sugest that perhaps pull_back is called on the wrong manifold; below, the point is the argument of pull_back, while the colored curves are the 4 lines bounding the quadrangle): [image: Figure_1.png] Does anyone know what kind of points ChartManifold<3, 3, i>::pull_back is supposed to handle? (i = 1, 2, and 3). *What I Tried* I looked at step-54 (and the source code/header of opencascade/manifold_lib and related utilities), and step-65 (transfinite interpolation). I wasn't able to use the NormalToMeshProjection since some of the holes are cylinder shaped, and an error was raised when computing the normal (the vectors that were averaged had a close to 0 sum). I also had issues with TransfiniteInterpolation, which was unable to complete the pull_back for some of the cells. In addition, there were a few other failed attempts, where the faces were already shattered into small quads prior to using the NormalToMeshProjection + TransfiniteInterpolation. I didn't have much luck with the other classes in opencascade/manifold_lib (e.g. Opencascade NURBS). *The Current Approach* I'm currently using the gmsh API to create a coarse mesh, and create the triangulation using the create_triangulation function. After that, I assign manifold_id (with set_manifold_id) and manifolds to each line/edge of each cell, whether internal or boundary (using wrappers around Opencascade functions, as needed), then do the same for each quad, and finally, for each cell. I'm using version 9.7.0 of deal.II (version found in /usr/local/lib/cmake/deal.II/deal.IIConfigVersion.cmake). Thank you. Best regards, Silviu -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/dealii/54e4e702-434f-4c11-88d5-3354076e8320n%40googlegroups.com.