Double diffusion simulation #1302
-
First of all thank for creating an easy and the same time powerful modeling tool. I am trying to simulate a double diffusion criteria and study how mixing evolved under such conditions. As far as I understand, Turbulence Closure scheme implemented here has same diffusivity coefficients for temperature and salinity. Since double diffusion needs those coefficients to be different, could you please point me to where I can set those values? Also, how can I feed the observed temperature and salinity fields (available in NetCDF) as input to the simulation. I am able to create a synthetic T(z) and S(z) profiles using the built-in model.grid and random noise but note sure how to set initial T(z) and S(z) from a NetCDF file |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi @LijoDXL! Glad you're finding Oceananigans easy to use.
You can set different diffusivities for different tracers, but I just realized that this feature might still be undocumented. You can pass a named tuple for when specifying some closures. For example: julia> using Oceananigans
julia> grid = RegularCartesianGrid(topology=(Periodic, Periodic, Bounded), size=(16, 16, 16), extent=(1, 1, 1));
julia> model = IncompressibleModel(grid=grid, closure=IsotropicDiffusivity(ν=5, κ=(T=5, S=12)));
julia> model.closure.κ
(T = 5, S = 12)
You can read the observed temperature and salinity fields from the NetCDF file using the NCDatasets.jl package into arrays then use the set!(model, T=some_array, S=some_other_array) function to initialize your model fields using arrays. |
Beta Was this translation helpful? Give feedback.
Hi @LijoDXL! Glad you're finding Oceananigans easy to use.
You can set different diffusivities for different tracers, but I just realized that this feature might still be undocumented. You can pass a named tuple for when specifying some closures. For example: