ali-ramadhan / Atmosfoolery.jl

Compressible non-hydrostatic model built on top of Oceananigans.jl so it runs on CPUs and GPUs
MIT License
3 stars 0 forks source link

What equations are being solved? #99

Open tomchor opened 3 years ago

tomchor commented 3 years ago

Sorry if this is a basic question. Oceananigans solves the incompressible Boussinesq equations. What equations does Atmosfoolery solve? Can you point me to a reference?

I ask because there is a collaborator of mine that is interested in studying compressible turbulence. We tried at some point to use Dedalus for that but couldn't get it to work. I'm checking if this is an option!

Thanks

ali-ramadhan commented 3 years ago

Hey @tomchor!

Yeah apologies about the lack of documentation, this repo is in a dormant state for now. The only documentation might be this Oceananigans.jl PR (including tests): https://github.com/CliMA/Oceananigans.jl/pull/1079

@thabbott implemented the current equation set so he's more qualified than I am to say (and I could be wrong) but Atmosfoolery.jl solves the compressible non-hydrostatic Navier-Stokes equations with either energy or entropy as a prognostic variable (and allowing for multiple moist species).

I beleive his implementation is based on Satoh (2002) [see equations (1)-(3) and add diffusion] and Satoh (2003). Both papers are attached below.

Satoh, 2002, Monthly Weather Review, Conservative Scheme for the Compressible Nonhydrostatic Models with the Horizontally Explicit and.pdf

Satoh, 2003, Monthly Weather Review, Conservative Scheme for a Compressible Nonhydrostatic Model with Moist Processes.pdf

ali-ramadhan commented 3 years ago

@tomchor Depending on what you guys are interested in simulating, Atmosfoolery.jl might be an option. Since you're already familiar with Oceananigans.jl, Atmosfoolery.jl should feel familiar as I tried to make sure we can reuse all the abstractions, output writers, advection schemes, etc.

I don't think Atmosfoolery.jl is currently super useful for simulation atmospheric turbulence (or any simulations with severe CFL constraints due to acoustic waves) because it doesn't have an acoustic time stepper yet so you might be limited to taking tiny time steps.

We have conducted some tests (see https://github.com/CliMA/Oceananigans.jl/pull/1079) so I'm somewhat confident that Atmosfoolery.jl produces the right answers but in general it's not very well-tested (certainly not at the same level as Oceananigans.jl).

That said I'm happy to transfer the repo to anyone who's interested in using/developing it as I'm not sure I can continue developing it (at least not by myself).

tomchor commented 3 years ago

Thanks for the feedback! It seems like we might be able to use this code if we ever get around to doing it. In which case I'll talk to you and see how we can proceed.

That said I'm happy to transfer the repo to anyone who's interested in using/developing it as I'm not sure I can continue developing it (at least not by myself).

I definitely would like to take up this challenge at some point, but there's no way I have time for this now, unfortunately. But this seems like very nice work. I've been reading the PR you mentioned and it seems like a nice piece of code :)