Problems
Fronts.AbstractSemiinfiniteProblem — Typeabstract type AbstractSemiinfiniteProblem{Eq <: DiffusionEquation} endAbstract 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 ifeqis 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>0See 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>0See 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 ifeqis 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 = 1See 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, whereois 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 ifeqis 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>0See 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 ifeqis 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 = 1See 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) <: AbstractFiniteProblemModels 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) <: AbstractFiniteProblemModels 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) -> IntWhether the solution to prob must be decreasing (-1), constant (0) or increasing (+1) in r.