Problems
Fronts.AbstractSemiinfiniteProblem
— Typeabstract type AbstractSemiinfiniteProblem{Eq <: DiffusionEquation} end
Abstract supertype for problems that can be solved with this package.
Type parameters
Eq
: type of the governing equation
See also: DiffusionEquation
Fronts.DirichletProblem
— TypeDirichletProblem(eq::DiffusionEquation; i, b[, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
DirichletProblem(D; i, b[, ob]) <: AbstractSemiinfiniteProblem{DiffusionEquation{1}}
Semi-infinite problem with a Dirichlet boundary condition.
Arguments
eq
: governing equation.D
: diffusivity function. Shortcut forDirichletProblem(DiffusionEquation(D), ...)
.
Keyword arguments
i
: initial value.b
: imposed boundary value.ob=0
: boundary constant for an optional moving boundary. At timet
, the boundary is located atob*√t
. Must be positive ifeq
is radial.
Examples
julia> D(u) = u^4
D (generic function with 1 method)
julia> prob = Fronts.DirichletProblem(D, i=1, b=2)
⎧ ∂u/∂t = ∂(D(u)*∂u/∂r)/∂r, r>0,t>0
⎨ u(r,0) = 1, r>0
⎩ u(0,t) = 2, t>0
See also: DiffusionEquation
Fronts.FlowrateProblem
— TypeFlowrateProblem(eq::DiffusionEquation{2}; i, Qb[, angle, height, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
Semi-infinite radial (polar/cylindrical) problem with an imposed-flowrate boundary condition.
Arguments
eq
: governing equation.
Keyword arguments
i
: initial value.Qb
: imposed boundary flowrate.angle=2π
: total angle covered by the domain.height=1
: domain height.ob=0
: boundary constant for an optional moving boundary. At timet
, the boundary is located atob*√t
.
Examples
julia> D(u) = u^4
D (generic function with 1 method)
julia> eq = Fronts.DiffusionEquation{2}(D)
∂u/∂t = 1/r*∂(r*D(u)*∂u/∂r)/∂r
julia> prob = Fronts.FlowrateProblem(eq, i=1, Qb=1)
⎧ ∂u/∂t = 1/r*∂(r*D(u)*∂u/∂r)/∂r, r>0,t>0
⎨ u(r,0) = 1, r>0
⎩ Qb(0,t) = 1, t>0
See also: DiffusionEquation
Fronts.SorptivityProblem
— TypeSorptivityProblem(eq::DiffusionEquation; i, S[, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
SorptivityProblem(D; i, S[, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
Semi-infinite problem with a known initial condition and soprtivity.
Arguments
eq
: governing equation.D
: diffusivity function. Shortcut forSorptivityProblem(DiffusionEquation(D), ...)
.
Keyword arguments
i
: initial value.S
: prescribed sorptivity.ob=0
: boundary constant for an optional moving boundary. At timet
, the boundary is located atob*√t
. Must be positive ifeq
is radial.
Examples
julia> D(u) = u^4
D (generic function with 1 method)
julia> prob = Fronts.SorptivityProblem(D, i=0, S=1)
⎧ ∂u/∂t = ∂(D(u)*∂u/∂r)/∂r, r>0,t>0
⎨ u(r,0) = 0, r>0
⎩ S = 1
See also: DiffusionEquation
, sorptivity
Fronts.CauchyProblem
— TypeCauchyProblem(eq::DiffusionEquation; b, d_dob[, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
CauchyProblem(D; b, d_dob[, ob]) <: AbstractSemiinfiniteProblem{DiffusionEquation{1}}
Semi-infinite problem with a Cauchy boundary condition (and unknown initial condition).
Arguments
eq
: governing equation.D
: diffusivity function. Shortcut forCauchyProblem(DiffusionEquation(D), ...)
.
Keyword arguments
b
: imposed boundary value.d_dob
: imposed value of theo
-derivative of the solution at the boundary, whereo
is the Boltzmann variable.
This value is equivalent to √t*d_dr(<solution>, :b, t)
at any time t>0
.
ob=0
: boundary constant for an optional moving boundary. At timet
, the boundary is located atob*√t
. Must be positive ifeq
is radial.
Examples
julia> D(u) = u^4
D (generic function with 1 method)
julia> prob = Fronts.CauchyProblem(D, b=2, d_dob=-0.1)
⎧ ∂u/∂t = ∂(D(u)*∂u/∂r)/∂r, r>0,t>0
⎨ u(0,t) = 2, t>0
⎩ √t*∂u/∂r(0,t) = -0.1, t>0
See also: DiffusionEquation
Fronts.SorptivityCauchyProblem
— TypeSorptivityCauchyProblem(eq::DiffusionEquation; b, S[, ob]) <: AbstractSemiinfiniteProblem{typeof(eq)}
SorptivityCauchyProblem(D; b, S[, ob]) <: AbstractSemiiinfiniteProblem{DiffusionEquation{1}}
Semi-infinite problem with a known boundary value and soprtivity (and unknown initial condition).
Arguments
eq
: governing equation.D
: diffusivity function. Shortcut forSorptivityCauchyProblem(DiffusionEquation(D), ...)
.
Keyword arguments
b
: imposed boundary value.S
: prescribed sorptivity.ob=0
: boundary constant for an optional moving boundary. At timet
, the boundary is located atob*√t
. Must be positive ifeq
is radial.
Examples
julia> D(u) = u^4
D (generic function with 1 method)
julia> prob = Fronts.SorptivityCauchyProblem(D, b=2, S=1)
⎧ ∂u/∂t = ∂(D(u)*∂u/∂r)/∂r, r>0,t>0
⎨ u(0,t) = 2, t>0
⎩ S = 1
See also: DiffusionEquation
, sorptivity
Fronts.AbstractFiniteProblem
— TypeAbstractFiniteProblem{Eq<:DiffusionEquation{1}}
Abstract type for problems defined in finite domains.
Fronts.FiniteDirichletProblem
— TypeFiniteDirichletProblem(eq, rstop[, tstop]; i, b) <: AbstractFiniteProblem
Models eq
in the domain 0 ≤ r ≤ rstop
with initial condition i
and boundary condition b
.
Arguments
eq
: equation to solve.rstop
: length of the domain.tstop=Inf
: final time. IfInf
, the solution is computed until the steady state is reached.
Keyword arguments
i
: initial value.b
: boundary value.
Fronts.FiniteReservoirProblem
— TypeFiniteReservoirProblem(eq, rstop, tstop; i, b, capacity) <: AbstractFiniteProblem
Models eq
in the domain 0 ≤ r ≤ rstop
with initial condition i
and a reservoir boundary condition.
Arguments
eq
: equation to solve.rstop
: length of the domain.tstop=Inf
: final time. IfInf
, the solution is computed until the steady state is reached.
Keyword arguments
i
: initial value.b
: boundary value.capacity
: reservoir capacity.
Fronts.monotonicity
— Functionmonotonicity(prob) -> Int
Whether the solution to prob
must be decreasing (-1
), constant (0
) or increasing (+1
) in r
.