Problems

Fronts.AbstractSemiinfiniteProblemType
abstract 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.DirichletProblemType
DirichletProblem(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 for DirichletProblem(DiffusionEquation(D), ...).

Keyword arguments

  • i: initial value.
  • b: imposed boundary value.
  • ob=0: boundary constant for an optional moving boundary. At time t, the boundary is located at ob*√t. Must be positive if eq 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.FlowrateProblemType
FlowrateProblem(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 time t, the boundary is located at ob*√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.SorptivityProblemType
SorptivityProblem(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 for SorptivityProblem(DiffusionEquation(D), ...).

Keyword arguments

  • i: initial value.
  • S: prescribed sorptivity.
  • ob=0: boundary constant for an optional moving boundary. At time t, the boundary is located at ob*√t. Must be positive if eq 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.CauchyProblemType
CauchyProblem(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 for CauchyProblem(DiffusionEquation(D), ...).

Keyword arguments

  • b: imposed boundary value.
  • d_dob: imposed value of the o-derivative of the solution at the boundary, where o 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 time t, the boundary is located at ob*√t. Must be positive if eq 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.SorptivityCauchyProblemType
SorptivityCauchyProblem(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 for SorptivityCauchyProblem(DiffusionEquation(D), ...).

Keyword arguments

  • b: imposed boundary value.
  • S: prescribed sorptivity.
  • ob=0: boundary constant for an optional moving boundary. At time t, the boundary is located at ob*√t. Must be positive if eq 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.FiniteDirichletProblemType
FiniteDirichletProblem(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. If Inf, the solution is computed until the steady state is reached.

Keyword arguments

  • i: initial value.
  • b: boundary value.
Fronts.FiniteReservoirProblemType
FiniteReservoirProblem(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. If Inf, the solution is computed until the steady state is reached.

Keyword arguments

  • i: initial value.
  • b: boundary value.
  • capacity: reservoir capacity.
Fronts.monotonicityFunction
monotonicity(prob) -> Int

Whether the solution to prob must be decreasing (-1), constant (0) or increasing (+1) in r.