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 Apr 2 '15 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 Apr 2 '15 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$ – Tyler Olsen Apr 3 '15 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 Apr 4 '15 at 20:02

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.

| cite | improve this answer | |
  • $\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 Apr 4 '15 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 Apr 7 '15 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$ – aeroNotAuto Apr 7 '15 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.


| cite | improve this answer | |
  • $\begingroup$ Thank you @Joseph for the link. Really nice collection of papers. Thank you! $\endgroup$ – Pranav May 4 '15 at 5:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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