Forcing

SawyerEliassenSolver.Forcing.GlobalPhysicalForcingType
struct GlobalPhysicalForcing{T, P} <: AbstractForcing{T}

Apply global forcing to the Sawyer-Eliassen equation in physical space. func is a function that updates the entire forcing variable in-place at time t. func should have signature func(F::XZVariable{T},t::T,params::P)::Nothing where {T<:Union{Float32,Float64}}. unless params is nothing, in which case func should have signature func(F::XZVariable{T},t::T)::T where {T<:Union{Float32,Float64}}.

Fields

  • domain::Domain{T} where T

  • func::Function

  • params::Any

source
SawyerEliassenSolver.Forcing.GlobalSpectralForcingType
struct GlobalSpectralForcing{T, P} <: AbstractForcing{T}

Apply global forcing to the Sawyer-Eliassen equation in spectral space. func is a function that updates the entire forcing variable in-place at time t. func should have signature func(F::FSVariable{T},t::T,params::P)::Nothing where {T<:Union{Float32,Float64}} unless params is nothing, in which case func should have signature func(F::FSVariable{T},t::T)::T where {T<:Union{Float32,Float64}} Note that the FSVariable{T} has entries of type Complex{T}.

Fields

  • domain::Domain{T} where T

  • func::Function

  • params::Any

source
SawyerEliassenSolver.Forcing.PointwisePhysicalForcingType
struct PointwisePhysicalForcing{T, P} <: AbstractForcing{T}

Apply pointwise forcing to the Sawyer-Eliassen equation in physical space. func is a function that computes the forcing at a given position and time. func should have signature func(x::T,z::T,t::T,params::P)::T where {T<:Union{Float32,Float64}} unless params is nothing, in which case func should have signature func(x::T,z::T,t::T)::T where {T<:Union{Float32,Float64}}.

Fields

  • domain::Domain{T} where T

  • func::Function

  • params::Any

source
SawyerEliassenSolver.Forcing.PointwiseSpectralForcingType
struct PointwiseSpectralForcing{T, P} <: AbstractForcing{T}

Apply pointwise forcing to the Sawyer-Eliassen equation in spectral space. func is a function that computes the forcing at given wavenumbers and time. func should have signature func(kx::T,kz::T,t::T,params::P)::complex{T} where {T<:Union{Float32,Float64}}. unless params is nothing, in which case func should have signature func(kx::T,kz::T,t::T)::T where {T<:Union{Float32,Float64}}

Fields

  • domain::Domain{T} where T

  • func::Function

  • params::Any

source