Buoyancy and equation of state
The buoyancy option selects how buoyancy is treated. There are currently three options:
- No buoyancy (and no gravity).
- Evolve buoyancy as a tracer.
- Seawater buoyancy: evolve temperature $T$ and salinity $S$ as tracers with a value for the gravitational acceleration $g$ and an appropriate equation of state.
No buoyancy
To turn off buoyancy (and gravity) simply pass
buoyancy = nothing
to the Model
constructor. In this case, you will probably also want to explicitly specify which tracers to evolve. In particular, you probably will not want to evolve temperature and salinity, which are included by default. To specify no tracers, also pass
tracers = ()
to the Model
constructor.
Buoyancy as a tracer
To directly evolve buoyancy as a tracer simply pass
buoyancy = BuoyancyTracer()
BuoyancyTracer()
to the Model
constructor. Buoyancy :b
must be included as a tracer, for example, by also passing
tracers = (:b)
Seawater buoyancy
To evolve temperature $T$ and salinity $S$ and diagnose the buoyancy, you can pass
buoyancy = SeawaterBuoyancy()
SeawaterBuoyancy{Float64}: g = 9.80665
└── equation of state: LinearEquationOfState{Float64}: α = 1.67e-04, β = 7.80e-04
which is also the default. Without any options specified, a value of $g = 9.80665 \; \text{m/s}^2$ is used for the gravitational acceleration (corresponding to standard gravity) along with a linear equation of state with thermal expansion and haline contraction coefficients suitable for water.
If, for example, you wanted to simulate fluids on another planet such as Europa where $g = 1.3 \; \text{m/s}^2$, then use
buoyancy = SeawaterBuoyancy(gravitational_acceleration=1.3)
SeawaterBuoyancy{Float64}: g = 1.3
└── equation of state: LinearEquationOfState{Float64}: α = 1.67e-04, β = 7.80e-04
When using SeawaterBuoyancy
temperature :T
and salinity :S
tracers must be specified
tracers = (:T, :S)
Linear equation of state
To use non-default thermal expansion and haline contraction coefficients, say $\alpha = 2 \times 10^{-3} \; \text{K}^{-1}$ and $\beta = 5 \times 10^{-4} \text{ppt}^{-1}$ corresponding to some other fluid, then use
buoyancy = SeawaterBuoyancy(equation_of_state = LinearEquationOfState(α=1.67e-4, β=7.80e-4))
SeawaterBuoyancy{Float64}: g = 9.80665
└── equation of state: LinearEquationOfState{Float64}: α = 1.67e-04, β = 7.80e-04
Idealized nonlinear equation of state
Instead of a linear equation of state, five idealized nonlinear equation of state as described by Roquet et al. (2015) may be specified. See RoquetIdealizedNonlinearEquationOfState
.