Out of curiosity, I was recently trying to search what skills are required to be successful as developer in scientific computing field (e.g. CFD or similar). And to do so, I was going to through various job postings to understand what industries look for in candidates.

Most basic requirements are strong programming skills, in depth understanding of physics and mathematics, parallel programming, etc. which is understandable. However I also see requirements of knowledge of computational geometry (such as spatial search algorithms etc.) which I do not have knowledge about as I am not from Computer Science background. Can anyone highlight what are the applications of computational geometry in CFD related applications.

Thank you very much.

  • $\begingroup$ I hire a fair number of computational scientists/developers, and computational geometry hasn't ever been in my job descriptions. Maybe there's something specific to where you're looking? $\endgroup$
    – Bill Barth
    Commented Apr 2, 2015 at 18:49
  • $\begingroup$ I came across this for CFD developer positions and they were not specific more than that. Hence I started wondering, why?! $\endgroup$
    – Pranav
    Commented Apr 2, 2015 at 19:02
  • 2
    $\begingroup$ spatial search algorithms are handy when you do discrete particle simulations. If you have to check for contacts between particles, you can check for contacts with only neighboring particles rather than searching over every possible contact pair, thus greatly speeding up the code overall. Knowing how to use k-d trees, quad/octrees, R-trees, etc is an important part of these algorithms. $\endgroup$ Commented Apr 3, 2015 at 1:00
  • $\begingroup$ thank you @TylerOlsen, it makes more sense to use these algorithms in particle based methods (or mesh-less methods) where there is no defined grid connectivity present. $\endgroup$
    – Pranav
    Commented Apr 4, 2015 at 20:02

2 Answers 2


if my years in the industry have taught me anything, it's this: everything depends on the grid. developing a robust solver that efficiently converges to machine zero might be the flashy rock star job, but the unsung heroes are the developers that improve our gridding algorithms. if you're looking for a really great way to lose the effects of a vortex, try to capture it with a dissipative mesh. obviously, most of us are limited by computational resources, so you can't just place points haphazardly. when you're staring at a deadline as you fight other projects for computational resources, and your matrix is composed of hundreds of cases, each with hundreds of thousands of cells...you learn to appreciate efficient grid placement.

getting off my gridding-needs-more-attention soapbox, i would wager those jobs might require you to work with some unstructured meshing. i'm thinking storage of multi-dimensional data, maybe nearest neighbor queries...i'm sure there are more modern buzzwords. perhaps they'll involve some kind of grid adaptation. there are some cases in which the solver and grid generator might be more closely coupled that you'd prefer.

all that being said, i don't write job reqs and i currently don't have funding to work on any grid algorithms. so this is just the knothole i work in.

  • $\begingroup$ Thank you for your insights @aeroNotAuto. So basically its mostly used in grid related tasks. Grid adaption at every timestep might be one good application where these spatial search etc. algorithms might be used.Thank you once again. $\endgroup$
    – Pranav
    Commented Apr 4, 2015 at 19:59
  • $\begingroup$ Can you also highlight which spatial search algorithms are used in these applications? Or maybe refer me to some website/book which explains the relevant algorithms in more detail, that'd be great help. Thanks! $\endgroup$
    – Pranav
    Commented Apr 7, 2015 at 6:56
  • $\begingroup$ @Pranav unfortunately, the only people i know that work on this use algorithms that are proprietary to our company : /. i don't work on any of it myself, but i can try to do some open source research this week. either way though, i think this is worthy of a new question; it will certainly get more attention that way. $\endgroup$ Commented Apr 7, 2015 at 11:10

To partially echo @aeroNotAuto, meshing algorithms are crucial. Here is a useful page listing important papers on meshing, from a Berkeley course taught by Jonathan Shewchuck.


  • $\begingroup$ Thank you @Joseph for the link. Really nice collection of papers. Thank you! $\endgroup$
    – Pranav
    Commented May 4, 2015 at 5:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.