Since this is my first contribution to Another Fine Mesh, allow me to introduce myself. My name is John Rhoads and I joined the Pointwise team in August of this year. Before coming to Pointwise, I was completing my graduate work at Princeton, experimentally studying turbulence and heat transfer in liquid metals. I will be presenting a portion of my research next week at the American Physical Society Division of Fluid Dynamics meeting in Pittsburgh, Pennsylvania. Pointwise will also be exhibiting at the conference, so please drop by our booth if you happen to be attending. I enjoy learning more about new fields and applications, so I would love to talk with you about your work! In fact, I have found Pointwise to be an engaging and dynamic place to work because of the wide array of industries we support.
I came to Pointwise with a background in plasma physics, and I have spent the past six years studying the effects of applied magnetic fields on flowing liquid metals. I thoroughly enjoyed studying the detailed physics present when you introduce an additional j x B body force to the Navier-Stokes equations (aka magnetohydrodynamics, or MHD), but I was always frustrated by the limited amount of diagnostic coverage—tomographic PIV doesn’t work when your fluid is opaque! To supplement my lab work I performed simulations in OpenFOAM, although creating an accurate MHD solver capable of resolving Hartmann layers (think electromagnetic boundary layers) is a difficult topic in its own right, particularly if you hope to include any turbulence in the system. If you will pardon the aside, loosely defined ‘MHD turbulence’ differs considerably from hydrodynamic (Kolmogorov) turbulence in that energy actually cascades to larger scales. That is, in contrast to hydrodynamic turbulence where eddies tend to break up and cascade to viscous scale lengths, in certain MHD flows small scale features coalesce into larger structures up to the system size. The physics of liquid metals are quite interesting.
From MHD to Meshing
Back to how I wound up at Pointwise: My foray into the world of computational fluid dynamics in support of my thesis work only whetted my appetite for accurate spatial representations of flow fields around realistic geometries. I looked for positions that would offer a wide array of applications, and ultimately I found Pointwise. Some of my colleagues at Princeton had used Pointwise in their research, so I was generally aware of the program’s capabilities. I was drawn to Pointwise’s ability to mesh practically any geometry, which means exposure to a great number of different industries—a perfect fit for my interests.
At Pointwise, I will serve as a researcher investigating the interplay of the mesh with various solvers and pushing the limits of what Pointwise can do. In the coming months, I will be investigating the behavior of Pointwise grids on solution convergence and accuracy in a couple different solvers. Concurrently, I will be working on several benchmark cases to compare the quality of Pointwise grids with those from other preprocessors. As evidenced by our recent recognition at the International Meshing Roundtable, the control over the grid within Pointwise gives users the ability to create exceptionally high-quality meshes around arbitrary geometries. Incidentally, if you happen to have an ‘impossible’ case to mesh, please let me know. I am looking for the tough, interesting cases that will push the software to the limit.
So, that is who I am. I moved to Fort Worth, set up my laptop and delved into Pointwise. I understand that I am likely biased towards our software, but bear in mind that I learned the software like anyone else and I have tried to keep my comments as objective as possible. That being said, the one opinion I will share is that for such a capable piece of software, I found the learning curve to be very shallow. With the aid of the training material, I was able to understand the basic features and functionality within an hour, and by the end of the day, I was meshing my own geometries.
Three months ago, I was a greenhorn as far as mesh generation goes. I had manually constructed grids using the blockMesh utility in OpenFOAM, but the most complex geometry I had ever meshed was that of a truncated cylinder in a duct. I had used snappyHexMesh on some crude automotive models for some simulations I performed in what little free time I had, but I would not consider that work to be terribly pertinent to the bottom-up meshing approach used in Pointwise.
My first impression with Pointwise was entirely positive. Pointwise has a modern GUI that gives you easy access to the tools you need to construct any type of grid. Further, the introductory video steps you through the “Hello world” equivalent of the first grid. The archived webinars and DIY videos available on the CFDMeshing YouTube channel offer some great demonstrations of the software’s capabilities and helpful tips to the novice user.
After working through a handful of the tutorials that come packaged with the software (Help, Tutorial Workbook), I had a working knowledge of the general meshing process and a good idea of the available tools within the software. That being said, there are hundreds of features in the software (and more added in each release) that assist in creating or refining your mesh, so there is always more to learn.
I had the opportunity to sit in on the standard training course offered at no charge to all current and prospective Pointwise customers, which provided a great immersive opportunity to learn about some of the more advanced features of the software. I would highly recommend the course for first-time users, as it introduces you to the tools in the software much faster than you would stumble across them on your own. The courses are held at Pointwise here in Fort Worth and are loosely structured around the tutorials mentioned above. However, the course also includes a more descriptive account of how things are organized and the workflow within the software.
Additionally, I took the Glyph scripting course in September, which I found to serve as an excellent introduction to scripting within Pointwise. For those of you who are not familiar, Glyph is the scripting language (based on Tcl) inherent to Pointwise. Glyph gives you access to all of the functionality within the GUI for automating or extending the functionality of the software. I had written a fairly comprehensive library of Python functions to expedite the manual construction of grids (i.e. the creation of blockMeshDict files for OpenFOAM), and I have found Glyph to be ideal for automating portions of the meshing process, while retaining the fine control provided by a bottom-up meshing approach.
Lastly, I must tip my hat to the in-house support team at Pointwise. The support team consists of knowledgeable and experienced aeronautical, mechanical, and biomedical engineers who are grid generation experts. They are exceedingly helpful contacts that know the software from top to bottom and can help you overcome any stumbling blocks that you might encounter anywhere between installation and exporting the grid to the solver. We have all been there: Everything is going smoothly until you need to do one exceedingly simple thing that appears to be impossible. The feature you’re looking for isn’t mentioned anywhere in the user manual, but you swear you have done this exact thing two years ago. The ability to write someone an email (firstname.lastname@example.org) and get exactly the answer you need is invaluable for these situations. The level and quality of the support Pointwise offers is a distinguishing factor among commercially available preprocessors. In the off chance that a support case discovers a limitation of the software, it becomes a product requirement for future releases when possible.
My First Mesh
One of the first projects that I tackled at Pointwise was creating an unstructured volume mesh for studying the external airflow around an open source automotive geometry that we pulled from GrabCAD.com. The model was in decent condition when it was imported, but certainly needed a good bit of clean-up before I could proceed with the meshing.
Pointwise has two different approaches to dealing with dirty CAD geometry: solid modeling and fault tolerant meshing. Solid modeling involves fixing gaps, holes and intersections at the model level—the surfaces defining the shape of your object, while fault tolerant meshing allows you to merge nearby grid entities created on misaligned parts to form your surface mesh. One of the things I struggled with in the beginning was how best to balance the use of these two features. Solid modeling can be tedious, but applying the fault tolerant features to complex geometries can be even more so. For the mesh shown below, I ultimately used a combination of the two approaches. The car geometry was healed until it formed a single watertight model. However, there were some internal faces within the air intakes on the roof in the original model that were removed using fault tolerant techniques, rather than trimming the model itself, to form a single, well-defined face for the unstructured volume.
As with most things, the small amount of extra time taken to heal the geometry up front (or coaxing your CAD provider to produce cleaner geometries!) can be a good investment when it comes to creating your surface mesh and beyond. For instance, after I had taken the time to create the model, the original surface mesh for the car body was created in one click with the Domains on Database Entities feature. There were only a couple additional steps required to get the surface mesh to the state seen below, but the tools within Pointwise made the process intuitive and relatively quick.
After creating the surface mesh, I used anisotropic tetrahedral extrusion (T-Rex) to generate highly orthogonal prism layers off the surface of the car. This Pointwise feature is extremely useful for creating high quality cells in boundary layers, where sharp gradients in fluid velocity can cause problems for a poorly constructed mesh. After generating the prism layers near the surface, T-Rex smoothly transitions to isotropic tetrahedral for the remainder of the volume.
I will be posting periodic updates on my progress regarding benchmarks, difficult grids, best practices and scripting projects. If you have any topics you would like to see addressed, please leave a comment or contact me directly at email@example.com. I am looking forward to the challenges ahead!