Forcing
SawyerEliassenSolver.Forcing
— ModuleModule for implementing different RHS forcings.
Exports
SawyerEliassenSolver.Forcing.PhysicalForcing
— TypeUnion of types representing forcing in physical (XZ) space.
SawyerEliassenSolver.Forcing.SpectralForcing
— TypeUnion of types representing forcing in spectral (FS) space.
SawyerEliassenSolver.Forcing.AbstractForcing
— TypeAbstract super type for all forcings.
SawyerEliassenSolver.Forcing.GlobalPhysicalForcing
— Typestruct 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
SawyerEliassenSolver.Forcing.GlobalPhysicalForcing
— Methodstruct GlobalPhysicalForcing{T, P} <: AbstractForcing{T}
Global physical forcing with no parameters. func
should have signature func(F::XZVariable{T},t::T)::T where {T<:Union{Float32,Float64}}
.
SawyerEliassenSolver.Forcing.GlobalSpectralForcing
— Typestruct 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
SawyerEliassenSolver.Forcing.GlobalSpectralForcing
— Methodstruct GlobalSpectralForcing{T, P} <: AbstractForcing{T}
Global spectral forcing with no parameters. func
should have signature func(F::FSVariable{T},t::T)::T where {T<:Union{Float32,Float64}}
.
SawyerEliassenSolver.Forcing.NoForcing
— TypeType representing no forcing.
SawyerEliassenSolver.Forcing.PointwisePhysicalForcing
— Typestruct 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
SawyerEliassenSolver.Forcing.PointwisePhysicalForcing
— Methodstruct PointwisePhysicalForcing{T, P} <: AbstractForcing{T}
Pointwise physical forcing with no parameters. func
should have signature func(x::T,z::T,t::T)::T where {T<:Union{Float32,Float64}}
.
SawyerEliassenSolver.Forcing.PointwiseSpectralForcing
— Typestruct 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
SawyerEliassenSolver.Forcing.PointwiseSpectralForcing
— Methodstruct PointwiseSpectralForcing{T, P} <: AbstractForcing{T}
Pointwise spectral forcing with no parameters. func
should have signature func(kx::T,kz::T,t::T)::T where {T<:Union{Float32,Float64}}
.