Project Geode, Geometry for Simulation, Now in Beta Test

HL-CRM-P2-Mesh-Geode-200x158Project Geode is our effort to share the core components of our geometry kernel with select partners and customers and evaluate whether it solves the oft-cited problem of geometry access from CFD and other simulation software.

I may have mentioned before that I am a fan of NASA’s CFD Vision 2030 Study. I like it because it is a comprehensive, fact-based assessment of CFD’s needs within the scope of NASA’s simulation requirements and because it aligns with Pointwise’s long-term development plans for our mesh generation software.

Inadequate CAD Linkage Means More Than Interoperability

From almost my first reading (and there have been dozens of readings since), two sentences under the heading “Inadequate Linkage with CAD” stood out.

“At the same time, additional information such as slope and curvature or even higher surface derivatives may be required for the generation of curved mesh elements suitable for use with higher-order accurate CFD discretizations. Finally, for adaptive meshing purposes, tight coupling between the CFD software and geometry definition is required to enable low-overhead, on-demand, geometry surface information queries within the context of a massively parallel computing framework.”

Yes – for CFD solvers to curve high-order elements and insert or move mesh nodes for adaptation they need access to the true geometry. Within the context of NASA’s mission (and the larger mission of aerospace applications) “true geometry” means analytic or parametric or NURBS geometry such as you’d get from a CAD software. (As opposed to faceted geometry models such as STL files.)


Pointwise’s research code on degree elevation and curving of meshes uses the Project Geode kernel. Shown above is an example of a quadratic mesh around the aft region of the NASA High Lift Common Research Model.

There are plenty of good geometry kernels available today that will provide any CFD solver writer access to NURBS. Parasolid, ACIS, and Open CASCADE are three that come immediately to mind. In fact, two decades ago we considered using ACIS or Parasolid in our meshing software. And I know people who have put Open CASCADE to good use.

But I know what the authors of the CFD Vision 2030 Study mean by the quote above. Parasolid and ACIS are great kernels but they are designed for design – for use in geometric design software – and therefore include a broad suite of tools for geometry creation. In our case at least, that was capability that we didn’t need in the sense that we consume geometry that’s already been created. Truth be told, I’m betting the licensing cost of embedding a commercial kernel in a CFD code that’s going to be distributed across hundreds (or more) cores could be a bit prohibitive. On the other hand, Open CASCADE is freely available as open source yet it too is a rather large piece of software that requires certain expertise to use. [To be clear, I personally have not used any of the tools I just cited. And there are more geometry kernels than just those three.]

Geometry for Simulation

So when I read the quote above about the Study’s vision of geometry for CFD, it struck me that Pointwise’s geometry kernel does just that and more. Once we made the decision to stick with our own proprietary kernel, we’ve continued its development over the decades specifically for the purpose of geometry consumption; fast and efficient evaluation of NURBS.

How exactly do applications like CFD solvers and mesh generators consume geometry? They evaluate it (e.g. what’s the normal vector at this point) and they project on it (e.g. take this point and move it to the closest location on the geometry model). These functions are at the core of our geometry kernel.

Project Geode

Putting two and two together [about the extent of the math I’m still capable of], we pulled the core libraries (math, geometry, and topology) out of our kernel and packaged them as the Project Geode kernel.

Project Geode’s kernel is a fourth generation, solid modeling and geometry kernel written in C++. It is available on Windows, Linux, and Mac in both 32-bit and 64-bit builds.


An example of an SU2-related application of the Project Geode kernel for degree elevation of a surface mesh. The lines represent the boundaries of the original linear elements. The dots represent extra nodes inserted on the geometry model to curve the mesh. This image is from a presentation at the Pointwise User Group Meeting 2016.

We then assembled a group of early beta testers to see whether the Geode kernel could solve the geometry access problem cited in the Study. One of those early beta testers was the SU2 team at Stanford. In their own words:

“We have used Geode to create high order elements for the SU2 Discontinuous Galerkin solver that is currently under development. The available functionality in the kernel allowed us to project the inserted points onto the true surface reliably, leading to curved elements respecting the true CAD geometry.”

Beta Testing

With the success of the early beta testers, we have decided to open the opportunity for testing to more geometry consumers. Keep in mind that we’re not beta testing the kernel itself. We use the full kernel everyday for the geometry-related functions in Pointwise. We are testing its utility when embedded into CFD or other simulation software relative to the Study’s vision.

There is one important restriction: because our resources to administer the beta testing are limited, we will give current customers and partners priority.

Read the Full Announcement

The full announcement of Project Geode is available on our website. We welcome your feedback on this project and we will do our best to keep the community abreast of progress on Project Geode.

If you’re at AIAA SciTech next month, track me down on Monday or Tuesday and we can talk more about geometry kernels for CFD.


This entry was posted in Software and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s