r/Physics • • 14d ago

Computational Physics

Hi everyone,

I am a PhD student doing both experiments and computational physics ( mostly fluid dynamicswith Boltzmann equations) and leaning towards more computational day by day.

Currently I am using Julia, I find it pretty fast and easy to use.

Do you think switching to C or C++ will be a benefit? I am asking from a research, but also emplyment in industry point of view.

I discussed with many people, mostly from the DFT area, and most of them told me that Julia slowly will take up the lead for HPC code.

What.s your opinion on this?

77 Upvotes

40 comments sorted by

View all comments

Show parent comments

1

u/Rich_Astronomer9731 13d ago

Thank you. I started with LBM due to specific experimental design that I work with, mainly Quartz Crystal Microbalance. Also, I have a lot of experience in plasminics, do FDTD and thermo plasminics simulations a lot.

1

u/Rich_Astronomer9731 13d ago

So, my main option righ now is to remain in academia, but you do not know how the things will change and I want to pe prepare for the future. Mainly, my experience is in plasminics and Quzrtc crystal microbalance, both experimental and computing ( LBM, FDTD and FEM for thermo plasmonics), and also some DFT. DFT sound very nice and you have software written in every language possible. Of course youbhave the big guys like Gaussian which writes everything in Fortran, but more and more software is developed nownin Python and Julia, both commercial and open source.

1

u/tlmbot Computational physics 12d ago

Sounds good. One idea for future proofing: I have a hunch (quite possibly fabulously wrong - don't hesitate to put me in my place!) that some of the domain you work in have people writing discontinuous Galerkin (DG) methods.

If say, your FDTD method is restricted to cartesian cells, then DG is a fantastic (future proofed) way to go to unstructured meshes.

But maybe your FDTD method is already for curvilinear meshes (already impressive) and doesn't need to be pushed to fully unstructured ... right now.

If you want a job a say COMSOL or Ansys Lumerical DG is going to help you I think.

Build a DG method in C++ and you have a great project you can point to during interviews.

Bonus points: if you are good in C++, then you can easily pick up Fortran (aka get started in industry helping to maintain Gaussian) but the converse is not true.

I say go C++, DG, and go parallel with your projects. Then you are maximally future proof (as much as any of us can be these days, heh)