Timesteppers
SawyerEliassenSolver.Timesteppers.AbstractPreconditioner
— TypeAbstract supertype for conjugate gradient preconditioners.
SawyerEliassenSolver.Timesteppers.DiagonalQuadraticPreconditioner
— Typestruct DiagonalQuadraticPreconditioner{T} <: AbstractPreconditioner{T}
A preconditioner that approximates 𝓛ζ
in spectral space by $𝓛ζ ≈ (ω₀² k_z² + ω₁² k_x^2) / (k_x² + k_z²) ζ$
Fields
domain::Domain{T} where T
ω₀²::Any
ω₁²::Any
SawyerEliassenSolver.Timesteppers.IdentityPreconditioner
— Typestruct IdentityPreconditioner{T} <: AbstractPreconditioner{T}
The default preconditioner for the conjugate gradient algorithm which does nothing.
SawyerEliassenSolver.Timesteppers.Timestepper
— Typestruct Timestepper{T, F, G, H, P}
Object that stores all the variables and operators required to advance a problem one timestep.
SawyerEliassenSolver.Timesteppers.Timestepper
— MethodTimestepper(problem::Problem{T}, h::T, [𝓟::AbstractPreconditioner]; c=nothing, cg_max_iterations=nothing, cg_tol=nothing)
Constructor for Timestepper
. The timestep h
is required and a preconditioner may optionally be passed.
Keyword arguments
c
: use a non-default value for the free parameter in the timestepping stepping scheme. See Sharp et al. (1990) for valid ranges of values.cg_max_iterations
: maximum number of iterations for the conjugate gradient solver.cg_tol
: tolerance for the conjugate gradient solver.
SawyerEliassenSolver.Timesteppers.advance!
— Methodadvance!(ts::Timestepper, n::Integer)
Advance the timestepper n
timesteps.
SawyerEliassenSolver.Timesteppers.advance!
— Methodadvance!(ts::Timestepper)
Advance the timestepper one timestep.