4 ms·
Does anyone have any recommendations for a former math major turned SWE to get into CFD simulations? I find this material fascinating but it's been a while sinc
by jvans 3y ago
Does anyone have any recommendations for a former math major turned SWE to get into CFD simulations? I find this material fascinating but it's been a while since I've done any vector calculus or PDEs so my math is very rusty.
- chefandy 3y agoIf you're more interested in the physics simulation for research, I can't help ya. However, SideFX Houdini is tough to beat if you're going more for entertainment-focused simulations. https://www.youtube.com/watch?v=zxiqA8_CiC4 https://www.youtube.com/watch?v=zxiqA8_CiC4 Their free non-commercial "Apprentice" version is only limited in its rendering and collaboration capabilities. It's pretty... uh... deep though. Coming from software and moving into this industry, the workflow for learning these sorts of tools is totally different. Lots of people say Houdini is more like an IDE than a 3D modelling program, and I agree in many ways. Rather than using the visual tools like in, say, blender, it's almost entirely based on creating a network of nodes, and modifying attributes and parameters. You can do most stuff in Python more cleanly than others like 3ds Max, though it won't compile, so the performance is bad in big sims. Their own C-like language, vex, is competent, and there's even a more granular version of their node system for the finer work with more complex math and such. It's almost entirely a data-oriented workflow on the technical side. However, if you're a "learn by reading the docs" type, you're going to have to learn to love tutorials rather quickly. It's very, very different from any environment or paradigm I've worked with, and the community at large, while generally friendly, suffers from the curse of expertise big-time.
- physicsguy 3y agoApply for jobs at a place like StarCCM or similar
- araes 3y agoI used to work at NASA (contractor) doing this. One thing, get a job in the field. If you really want to, apply to Marshall Space Flight Center and / or Ames (Top500: Aitken [#85, 9.07 PFlops], Pleiades [#132, 5.95 PFlops], Electra [#143, 5.44 PFlops] systems) on either the Federal or Contractor side. GRC, LARC, and JSC also have some. At least a few years ago, the Contractor / Federal integration was actually quite good, and nearly transparent (except for allocating money). These groups are both fairly well known at NASA (MSFC, Propulsion Structural, Thermal & Fluid Analysis [2][3], and Ames, Entry Systems [4]) When I was there we were running ~100 million cell (vehicle) or (vehicle + pad) Hybrid RANS/LES sims with moving overset grids, maybe 10-20 species reactive combustion chemistry (SSMEs and SRBs lighting together), and Lagrangian evaporative particle dynamics (launch water suppression) using Overflow/LARC [5], or Loci/Mississippi State University [6]. Note: My info's a decade out of data, so no idea what the SOTA is these days. More than this. If you're interested in the field and what a lot of the industry is concerned about, then while old (2014), the CFD Vision 2030 Study is not a bad orientation. [7] Try to get a ticket to Supercomputing and go wander around. This year was in Denver. [8] Their focus tends to be on "large" though, so you'll mostly get massive weather simulations and stellar cloud dynamics. I like the conference, yet its difficult to get any notice unless you did #CPUs/#GPUs/#FPGAs++. GOV Outside NASA: NIST (Gaithersburg), DOE (Oak Ridge, Sandia, Los Alamos), Air Force (AF Research Lab), Huntington Beach. [1] NASA Advanced Supercomputing Division: https://en.wikipedia.org/wiki/NASA_Advanced_Supercomputing_Division https://en.wikipedia.org/wiki/NASA_Advanced_Supercomputing_D... [2] NASA, MSFC: https://www.nasa.gov/wp-content/uploads/2016/01/g-28367g_pstfa_er40.pdf https://www.nasa.gov/wp-content/uploads/2016/01/g-28367g_pst... [3] Somewhat old examples: https://ntrs.nasa.gov/api/citations/20140016892/downloads/20140016892.pdf https://ntrs.nasa.gov/api/citations/20140016892/downloads/20... [4] NASA Ames: https://www.nasa.gov/entry-systems-and-technology-division/ https://www.nasa.gov/entry-systems-and-technology-division/ [5] OVERFLOW/NASA/LARC: https://overflow.larc.nasa.gov/ https://overflow.larc.nasa.gov/ [6] Loci/MSU: https://simcenter.msstate.edu/ https://simcenter.msstate.edu/ [7] CFD Vision 2030 Study: https://ntrs.nasa.gov/api/citations/20140003093/downloads/20140003093.pdf https://ntrs.nasa.gov/api/citations/20140003093/downloads/20... [8] Supercomputing SC23: https://sc23.supercomputing.org/ https://sc23.supercomputing.org/
- jvans 3y agoThis is very helpful thank you. I tried looking at a few job pages on those links but can't seem find any open SWE positions. Couple of follow up questions: 1. What am I looking for in a job description that would indicate i'd be working on CFD simulations? 2. What would make me a compelling applicant? This seems very different than the distributed systems/recommendation system work that I have a lot of experience in. Thanks again!
- atrettel 3y ago1. You should look look for jobs that mention terms like computational fluid dynamics (CFD), finite volume methods (FVM), and other numerical methods. It's difficult in a short post to list everything, but terms like large eddy simulation (LES), Reynolds-averaged Navier-Stokes (RANS), structured grids, unstructured grids, etc. would be helpful. The numerical methods used are quite vast and depend highly on the particular application. 2. A background in distributed systems is actually very good for this field, but high-performance computing (HPC) is a bit different than other kinds of distributed computing, largely because if a node fails or communication breaks down in some way, it is easier to just kill the job. There's no need to make it fail gracefully. Some of your distributed computing knowledge will be extremely valuable but other parts will never come up. I suggest taking some time and getting familiar with Message Passing Interface (MPI). It is the standard used for distributed memory programming in HPC applications. Almost all of these programs use MPI at least in part. There are several good tutorials online. I recommend [1]. A strong background in MPI is invaluable in a lot of these codes, especially if you can master non-blocking communication. Learning Fortran may help with some projects and be useless for others. It might be worth the time to at least learn some so that the terminology is not foreign. I'd also add that many of these jobs are difficult to get even if you have a PhD in the field. Many projects only hire when there is a real need for a new person (or when somebody retires, etc.). Timing the market is an unfortunately reality here. Good luck! [1] https://mpitutorial.com/tutorials/ https://mpitutorial.com/tutorials/
- araes 3y agoThank you for the additional info @atrettel. Quite accurate in terms of what I remember of the field. On the NASA perspective, mostly use Linux qsub with MPI. An example of such is: https://www.nas.nasa.gov/hecc/support/kb/running-multiple-small-rank-mpi-jobs-with-gnu-parallel-and-pbs-job-arrays_545.html https://www.nas.nasa.gov/hecc/support/kb/running-multiple-sm...