FlexPDE version 4.0 introduced an entirely new mesh generator for 3D problems. With support for LIMITED REGIONS, it offers users much more flexibility in the creation of 3D domains. It is also a much more complex computation, and is sometimes in need of some user assistance to successfully create a mesh for complex 3D problems.
The greatest challenge faced by the 3D mesh generator is the transition across wide ranges of feature sizes. Any help the user can give in easing this transition will be amply rewarded in a decreased incidence of mesh generation failure. We at PDE Solutions are also engaged in improving the intelligence of the mesh generator to also assist in reaching this goal.
The first facility that users should be aware of is the "Domain" item on the main menu bar. Selecting this item instead of "Run" will give the user a step-by-step review of the mesh generation process. This review reflects the order of operations performed by the mesh generator.
|•||The first sequence of displays shows the domain boundaries in the surfaces and layers of the extrusion. The first plot shows the domain boundaries present in the bottom surface; the next shows the boundaries which extend through the first layer; then the boundaries present in the second extrusion surface; and so on through entire domain, and ending with the top surface. You should examine each of these displays to determine that the structure is as you intended. Errors at this point can create serious trouble later.|
|•||After the individual surfaces and layers are displayed, a composite 3D display is presented of the total domain, as represented by boundaries. This plot can be rotated to examine all aspects of the domain. |
|•||The next sequence of displays shows the triangular surface meshes created for the extrusion surfaces. These meshes are created and displayed in 3D space, and can be rotated to be sure there are no anomalies in the construction. Following initial surface mesh creation, the meshes are refined to create sufficient resolution of surface curvature. They are then analyzed for proximity, and coarser meshes are refined due to influence from nearby dense meshes. |
|•||The next sequence of displays shows the creation of the tetrahedral 3D meshes for each of the regions and layers of the domain. Before a block is filled, the bounding surface is shown; after filling, the filled block is displayed (it looks the same). The sequence presents first the region blocks for layer 1, followed by a unified mesh of layer 1. This pattern is repeated through the layers of the domain, until finally a unified 3D mesh is displayed. At this point, the mesh is composed of linear (straight-sided) tetrahedra.|
|•||Once the domain is filled with linear tetrahedra, the additional nodes needed for quadratic or cubic interpolation. Cells are also bent at this point to conform to curved boundaries. This curving can create troubles in thin curved shells. The 3D mesh generator is not yet smart enough to compute shell thickness and curvature and automatically adapt the size. You may have to do it manually with the MESH_SPACING command. Sqrt(Radius*thickness) is a good rule of thumb.|
|•||This completes the mesh generation process, and solution should proceed promptly.|
DEALING WITH FAILURE
The most common cause of mesh generation failure is the inability to make the transition from very small to very large feature sizes without tangling. If the mesh generation fails, the user has several options, all involving some kind of manual mesh density control.
|•||The simplest way of dealing with mesh generation failure is simply to increase the NGRID selector. This causes the entire mesh to be more dense, and also more regular. In some cases, it may create a mesh which is simply too large for effective computing with the available computer resources.|
|•||A second approach is to use the MESH_SPACING control to increase the overall density in a troublesome region, layer or surface. Remember that MESH_SPACING can be specified as arbitrary functions of spatial coordinate, allowing dense meshes in specific locales. |
|•||The ASPECT control can be used to increase the cell sizes in thin components, thereby reducing the range of sizes that must be dealt with in surrounding media. Increasing ASPECT can create elongated cells in surrounding media, so you may need to balance its use by explicitly controlling MESH_SPACING in these regions.|
|•||You can localize the problem areas by building your domain one layer at a time. Build the first layer and examine the regional meshes for compliance with your expectations. Then add the next layer. You might at this point want to hide the first layer, so you can deal with the second layer as an independent item.|